前端编译器将源文件(.java)编译成字节码文件(.class)后,jvm交给执行引擎中的解释器进行边解析字节码边转换成cpu识别的机器指令,而jit即时编译器是将字节码中的热点代码(重复执行的代码,比如for循环)进行编译转换成机器指令然后缓存起来,在最新的JVM虚拟机中(hotspot)两者是搭配进行工作的。 两者区别: 解释器比较快,它没有等待的过程,是逐行编译的; 如果jit即时编译器不仅仅关注热点代码,jit即时编译会比较慢,程序启动过程中暂停时间比较长