执行引擎

分配给运行时数据区的字节码将由执行引擎执行。执行引擎读取字节码并逐个执行它

主要包括:

  • 解释器(Interpreter):解释器解释字节码较快,但执行慢。解释器的缺点是当一个方法被多次调用时,每次都需要新的解析;
  • JIT编译器:JIT编译器消除了解释器的缺点。执行引擎将在转换字节码时使用解释器的帮助,但是当它发现重复的代码时,它使用JIT编译器,编译器会编译整个字节码并将其更改为本地代码。这个本地代码将直接用于重复的方法调用,从而提高系统性能
  • 垃圾收集器:收集和删除未引用的对象;可以通过调用"System.gc()"触发垃圾收集器,但不能保证执行。JVM的垃圾回收收集创建的对象

JIT编译器

  • 中间代码生成器:生成中间代码
  • 代码优化器:负责优化上面生成的中间代码
  • 目标代码生成器:负责生成机器代码或本地代码
  • 分析器:一个特殊组件,负责查找热点,即该方法是否被多次调用;

【知识总结】

运行Java的每一个线程都是一个独立的虚拟机执行引擎的实例

注意:JVM是进程级别,执行引擎是线程级别

results matching ""

    No results matching ""