本文主要是介绍五十四、为什么JAVA不是解释执行的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 字节码更便于虚拟机读取,不用在解析字符串,所以运行速度比直接解析源代码快。
- 语法是会变的,而源代码中没有版本信息,而字节码中不但有版本信息,还可以经由编译过程抹平一些语言层面的变化(即语言语法虽然有变化,但字节码依然遵照原来的规则即可)。
- 字节码也可以由其他语言生成,如Groovy,Clojure,Scala。需要注意的事,既然这些语言可以编译成字节码,也就可以被Java或其他JVM语言调用。
- Java严格说来是“半解释半编译”型的语言
- Java代码首先由javac编译成字节码(ByteCode)。ByteCode是JVM唯一能够识别的指令,JVM将ByteCode翻译成真正能够执行的机器码
- 字节码的规范由JVM规范(The Java® Virtual Machine Specification)定义,JVM在不同的硬件平台上需要有不同实现,以达到所谓“一次编写,到处运行”的目标。
- 直接执行字节码,比解释源码再执行,会更快。
- 生成字节码过程中,编译器可以预先作语法错误或者安全性方面的检查,出错机会更少。
- 字节码比源码更加紧凑,文件尺寸更小,方便网络传输。
- 有些嵌入设备,不够资源跑起完整的编译器,这些设备只需要嵌入一个小巧的JVM就行了,在额外的平台上编译源码。
- 字节码不一定非要java源码生成,其它一些语言比如scala也可以编译生成字节码。这样其它语言就可以利用上经过多年发展的JVM。
这篇关于五十四、为什么JAVA不是解释执行的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!