🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 执行引擎 分配给运行时数据区的字节码将由执行引擎执行。执行引擎读取字节码并逐个执行它 主要包括: * 解释器\(Interpreter\):解释器解释字节码较快,但执行慢。解释器的缺点是当一个方法被多次调用时,每次都需要新的解析; * JIT编译器:JIT编译器消除了解释器的缺点。执行引擎将在转换字节码时使用解释器的帮助,但是当它发现重复的代码时,它使用JIT编译器,编译器会编译整个字节码并将其更改为本地代码。这个本地代码将直接用于重复的方法调用,从而提高系统性能 * 垃圾收集器:收集和删除未引用的对象;可以通过调用"System.gc\(\)"触发垃圾收集器,但不能保证执行。JVM的垃圾回收收集创建的对象 #### JIT编译器 * 中间代码生成器:生成中间代码 * 代码优化器:负责优化上面生成的中间代码 * 目标代码生成器:负责生成机器代码或本地代码 * 分析器:一个特殊组件,负责查找热点,即该方法是否被多次调用; 【知识总结】 运行Java的每一个线程都是一个独立的虚拟机执行引擎的实例 注意:JVM是进程级别,执行引擎是线程级别