解释和编译的区别
- 解释:将源代码逐行转换为机器码
- 编译:将源代码一次性转换为机器码
解释执行和编译执行的区别
- 解释执行:程序运行时,将源代码逐行转换为机器码,然后执行
- 编译执行:程序运行前,将源代码一次性转换为机器码,然后执行
Java 一般被称为“解释型语言”,因为 Java 代码在执行前,需要先将源代码编译成字节码,然后在运行时,再由 JVM 的解释器“逐行”将字节码转换为机器码,然后执行。
但JIT 的出现打破了这种刻板印象,JVM 会将热点代码(即运行频率高的代码)编译后放入 CodeCache
,当下次执行再遇到这段代码时,会从 CodeCache
中直接读取机器码,然后执行。这大大提升了 Java 的执行效率。