Java源码,编译后会生成一种.class文
来源:互联网 发布:java resources 编辑:程序博客网 时间:2024/04/30 15:50
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。
那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(JavaVirtualMachine,简称JVM)。
JVM也是一个软件,不同的平台有不同的版本。我们编写的件Java源码,编译后会生成一种.class文,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。
而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。
经常在网上看到各种标题为“Java程序员”、“PHP程序员”、“C/C++程序员”的招聘帖子,但我感觉这种招聘方式,很难找到好的人才。语言只是一种工具,对一个聪明的程序员来说,用没用过什么工具主要是由他原来的工作需要决定,并不能代表他全部的技能。
另外,一个软件产品往往涉及很多方面的知识,比如网络、数据库、Cache、编译环境工具等。如果这些必要基础知识不足,很难很好的独立完成一个产品的某个部分。
另一方面,一个人的聪明程度、对新知识的好奇心、自我驱动意识、为问题找到最佳解决方案的决心,才是他能不能成为一个好程序员的关键。举个例子,我在担任JPushCTO的时候,有位同事本来是服务器端以C语言为主做开发的,完全没有过iOS开发经验,但他表现出对iOS开发很有兴趣,并且在做服务器端开发时,表现出良好的学习能力,后来我把他调到iOS组,负责iOSSDK和APNs相关的工作,结果只花了几个星期,iOSSDK的稳定性大幅提升,解决了多个致命问题。
之所以用Java作为标题,一是现在以Java语言为主的工作非常之多,另外在学校里就以学习Java为主的人也越来越多。但我发现,从学校就以学习Java这种高级语言为主的人,很多基础知识比较薄弱。高级语言掩盖了太多细节,提高了生产力,但在学习阶段,却不利于基础知识累积。
软件行业是一个非常强调人的价值的行业,价值就体现在有效的推动产品前进,而语言只是实现这个价值的工具。
那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(JavaVirtualMachine,简称JVM)。
JVM也是一个软件,不同的平台有不同的版本。我们编写的件Java源码,编译后会生成一种.class文,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。
而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。
经常在网上看到各种标题为“Java程序员”、“PHP程序员”、“C/C++程序员”的招聘帖子,但我感觉这种招聘方式,很难找到好的人才。语言只是一种工具,对一个聪明的程序员来说,用没用过什么工具主要是由他原来的工作需要决定,并不能代表他全部的技能。
另外,一个软件产品往往涉及很多方面的知识,比如网络、数据库、Cache、编译环境工具等。如果这些必要基础知识不足,很难很好的独立完成一个产品的某个部分。
另一方面,一个人的聪明程度、对新知识的好奇心、自我驱动意识、为问题找到最佳解决方案的决心,才是他能不能成为一个好程序员的关键。举个例子,我在担任JPushCTO的时候,有位同事本来是服务器端以C语言为主做开发的,完全没有过iOS开发经验,但他表现出对iOS开发很有兴趣,并且在做服务器端开发时,表现出良好的学习能力,后来我把他调到iOS组,负责iOSSDK和APNs相关的工作,结果只花了几个星期,iOSSDK的稳定性大幅提升,解决了多个致命问题。
之所以用Java作为标题,一是现在以Java语言为主的工作非常之多,另外在学校里就以学习Java为主的人也越来越多。但我发现,从学校就以学习Java这种高级语言为主的人,很多基础知识比较薄弱。高级语言掩盖了太多细节,提高了生产力,但在学习阶段,却不利于基础知识累积。
软件行业是一个非常强调人的价值的行业,价值就体现在有效的推动产品前进,而语言只是实现这个价值的工具。
1 0
- Java源码,编译后会生成一种.class文
- .java文件编译后会产生那些.class文件
- Java编译后生成的若干个class文件名称解析
- Java编译后生成带$符号的class
- 一个jsp文件中包含内部类时编译后会生成多个class文件
- java编译后class路径
- java编译后的class文件
- 查看java编译后的.class文件
- 一种Java运行时动态生成class的方法
- android 编译后,framework层生成的class.jar
- Maven编译后没有生成class文件的解决办法
- maven 编译后,没有生成class文件的解决方案
- Eclipse下报错的java代码也会生成class文件
- 编译 IDL 后生成的 Java 类
- 编译生成CLASS文件
- myeclipse修改java文件后,部署不生成class文件
- 关于java文件编译后,同一个文件出现"$"的class
- 利用jclasslib修改java编译后的.class文件
- 处理多维度变化——桥接模式
- org.hibernate.AssertionFailure: null id in entry (don't flush the Session after an exception occurs)
- Scala 隐式类
- UIAlertController在8以下不支持
- Lucky Ticket
- Java源码,编译后会生成一种.class文
- iOS数据库存储数组或字典等数据
- code vs 搭桥
- java开发环境升级
- tableViewCell只有一个button无响应
- Linux大数据开发基础:第三节:用户和组
- 类与对象3(日期类)
- 不兼容结构的协调——适配器模式
- eclipse 添加jar包几种方式对比