面试题:Java 解释执行的流程

解释和编译的区别

  • 解释:将源代码逐行转换为机器码
  • 编译:将源代码一次性转换为机器码

解释执行和编译执行的区别

  • 解释执行:程序运行时,将源代码逐行转换为机器码,然后执行
  • 编译执行:程序运行前,将源代码一次性转换为机器码,然后执行

Java 一般被称为“解释型语言”,因为 Java 代码在执行前,需要先将源代码编译成字节码,然后在运行时,再由 JVM 的解释器“逐行”将字节码转换为机器码,然后执行。

JIT 的出现打破了这种刻板印象,JVM 会将热点代码(即运行频率高的代码)编译后放入 CodeCache,当下次执行再遇到这段代码时,会从 CodeCache 中直接读取机器码,然后执行。这大大提升了 Java 的执行效率。

面试题:Java 解释执行的流程_第1张图片

图片来源于美团技术博客

你可能感兴趣的:(#,面试,java,开发语言)