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会把部分”热点代码“编译成本地机器相关的机器码,并进行优化,然后再把编译后的机器码缓存起来,下次使用。

posted @ 2022-03-19 00:30  KksS-  阅读(910)  评论(0)    收藏  举报