Java是解释执行,这句话正确吗?

对于“Java是解释执行”,这句话不太准确。
我们开发的Java的源代码,首先通过Javac编译成为字节码(bytecode),然后,在运行时通过Java虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的JVM,比如我们大多数情况使用的Oracle JDK提供的Hotspot JVM,都提供了JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

Java源代码被翻译为字节码:
Java是解释执行,这句话正确吗?_第1张图片

你可能感兴趣的:(Java是解释执行,这句话正确吗?)