Java是编译型语言还是解释型语言
Java是什么类型的语言
Java语言是一种介于解释型语言和编译型语言之间德 面向对象 语言,属于高级混合型语言,它是集编译型语言和解释型语言的优势于一身,即执行速度较快,只需要编写和编译一次。
Java语言可以说它是编译型的,因为所有的Java代码都是要编译的,.java不经过编译就不能运行,也可以说它是解释型的语言,因为Java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的。
但是,现在的JVM为了提高效率,都有一些JIT优化。他又会把.class的二进制代码编译为本地的代码直接运行,所有又是编译的。
扩展:
编译型语言与解释型语言
- 编译型语言:把写好的源程序全部编译成二进制代码的可运行程序,直接运行这个程序。
- 解释型语言:把做好的源程序翻译一行,执行一行,直到程序结束
区别:
编译型语言:执行速度快,效率高;依赖编译器、跨平台性差
解释型语言:执行速度慢,效率低,依赖解释器、跨平台性好
JIT(just in time)即时编译:
通过JIT技术,能够做到Java程序执行速度的加速。
从上述中了解到,Java是一门半编译,半解释型语言。Java通过编译器javac命令先将源程序编译成与平台无关的Java字节码文件(.class),再由JVM解释执行字节码文件,从而做到平台无关。对字节码的解释执行过程实质为:JVM先将字节码编译为对应的机器指令,然后再执行机器指令。这样经过解释执行,其执行速度必然不如直接执行二进制字节码文件。
为了提高执行速度,便引入了JIT技术。当JVM发现某个方法或代码块运行特别频繁的时候,就会认为这是”热点代码“(Hot Spot Code)。然后JIT会把部分”热点代码“编译成本地机器相关的机器码,并进行优化,然后再把编译后的机器码缓存起来,下次使用。

浙公网安备 33010602011771号