执行引擎属于JVM的下层,里面包括:解释器、即时编译器、垃圾回收器
执行引擎工作过程
大部分的程序代码转换成物理机的目标代码或虚拟机能执行的指令集之前,都需要经过下图中的各个步骤:
什么是解释器?什么是JIT编译器?
为什么Java是半编译半解释型语言?
指令
指令集
不同的硬件平台,各自支持的指令,是有差别的。因此每个平台所支持的指令,称之为对应平台的指令集。如常见的
编译过程又可以分成两个阶段:编译和汇编
为什么要有解释器?
解释器的分类
解释器的现状
Java 代码执行的分类
Hotspot 同时采用解释器和即时编译器
为啥我们还需要解释器呢?
首先明确两点:
结论:
Hotspot JVM 代码执行方式
热点探测技术
方法调用计数器
热度衰减
回边计数器
缺省情况下HotSpot VM是采用解释器与即时编译器并存的架构,当然开发人员可以根据具体的应用场景,通过命令显式地为Java虚拟机指定在运行时到底是完全采用解释器执行,还是完全采用即时编译器执行。如下所示: