执行引擎概述
- 执行引擎是Java虚拟机核心的组成部分之一。
- "虚拟机"是一个相对于"物理机"的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而
虚拟机的执行引擎则是由软件自行实现的
,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式
。
JVM的主要任务是负责装载字节码到其内部,
但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节码指令、符号表,以及其他辅助信息。
那么,如果想要让一个Java程序运行起来,执行引擎(Execution Engine)的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以
。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者。
从外观上来看,所有的Java虚拟机的执行引擎输入、输出都是一致的: 输入的是字节码二进制流,处理过程是字节码解析执行的等效过程,输出的是执行结果。