JVM 执行引擎
6.1 执行引擎概述
6.1.1 执行引擎
执行引擎是 Java 虚拟机核心组成的一部分,虚拟机是一个相对于物理机的一个概念,这两种机器都有执行代码的能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统的层面上的,而虚拟机的执行引擎是由软件自行实现的,因此可以不受物理条件制约的指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的格式。java虚拟机可以理解成一个抽象的计算机,相较于真正的物理机而言,java 虚拟机的执行效率会略慢于物理机。
JVM 的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统上面,因为字节码指令并非等价于本地机器指令,他内部包含的仅仅是一些能够被 JVM 识别的字节码指令等信息。如下图所示,这些字节码指令不能直接在操作系统上解释执行,而是需要现通过 JVM 虚拟机来执行这些字节码指令。

6.1.2 前端编译与后端编译
Java 程序的编译过程是分两个部分的。一个部分是从 java 文件编译成为 class 文件,这一部分也称为前端编译。另一个部分则是 JVM 虚拟机将 class文件的将这些字节码指令编译成操作系统识别的具体机器指令,这一部分也称为后端编译。
其中前端编译是在 JVM 虚拟机之外执行,所以与 JVM 虚拟机没有太大的关系。任何编程语言,只要能够编译出满足 JVM 规范
