前端编译器将源文件(.java)编译成字节码文件(.class)后,jvm交给执行引擎中的解释器进行边解析字节码边转换成cpu识别的机器指令,而jit即时编译器是将字节码中的热点代码(重复执行的代码,比如for循环)进行编译转换成机器指令然后缓存起来,在最新的JVM虚拟机中(hotspot)两者是搭配进行工作的。
两者区别:
解释器比较快,它没有等待的过程,是逐行编译的;
如果jit即时编译器不仅仅关注热点代码,jit即时编译会比较慢,程序启动过程中暂停时间比较长
相关文章
- 01-30java执行引擎编译字节码文件流程
- 01-30【java虚拟机系列】从java虚拟机字节码执行引擎的执行过程来彻底理解java的多态性
- 01-30OMG!解释执行java字节码文件的命令
- 01-30重读《深入理解Java虚拟机》五、虚拟机如何执行字节码?程序方法如何被执行?虚拟机执行引擎的工作机制
- 01-30ython:运行在Java平台上的python解释器,可以直接把python代码编译成Java字节码执行
- 01-30@使用javap反编译Java字节码文件
- 01-30《深入理解Java虚拟机》学习笔记之字节码执行引擎
- 01-30深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)
- 01-30java虚拟机字节码执行引擎浅析
- 01-30深入学习Java虚拟机——虚拟机字节码执行引擎