JVM执行引擎——解释器与编译器JIT

执行引擎是JVM核心的组成部分之一,因为字节码文件不能直接运行在操作系统上,所以执行引擎就充当了将字节码文件翻译为机器码,是将高级语言转化为机器语言的桥梁。

执行引擎有两种行为方式:解释执行和编译执行。

1.什么是解释器?什么是JIT编译器?

解释器:当JVM启动时会将字节码文件采用逐行 解释的方式一行行转化为机器码指令来执行 ,解释和执行同时进行,在解释过程中,如果出现错误,停止解释,在删除错误后,解释继续进行。

JIT编译器:就是直接将字节码文件一次性直接编译 为机器码,但是并不是立即执行 ,相较于解释器需要更多的内存,在编译过程中,如果出现错误,停止编译,在删除错误后,重新编译整个程序。

相关推荐
xiaoqiMikko1 小时前
JVM 线上排查实战(七):jps 看不见它、jstack 连不上它,可它明明活得好好的
java·jvm
用户094248568033 小时前
第25章:Java虚拟线程(Project Loom)实战与调度协作
java·jvm
wuminyu3 小时前
ForkJoinPool内部WorkQueue的Lock-Free数组操作以及并发任务窃取原理剖析
java·linux·c语言·jvm·c++
墨天梦5 小时前
B10_文件SharedPreferences与SQLite
jvm·数据库·sqlite
EatFan11 小时前
2026 Java 后端面试风向变了:八股文只是门槛,场景化追问才是淘汰线
java·开发语言·jvm·面试·后端面试·八股文·full gc
wuminyu1 天前
Virtual Thread重投递至ForkJoinPool任务队列过程解析
java·linux·c语言·jvm·c++
2601_962071572 天前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
用户094248568032 天前
第23章:OpenJDK逃逸分析、标量替换与锁优化
java·jvm
wuminyu2 天前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
2601_962071572 天前
类变量和全局变量的隔离性有什么区别?
java·开发语言·jvm