虚拟机和物理机执行引擎的区别

虚拟机执行引擎和物理机一样,都具有执行代码的能力,但是它们之间还是存在以下的区别:

  • 物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统的层面上的
  • 虚拟机的执行引擎则是自定义的,可自行制定指令集与执行引擎的结构体系,且能够执行不被硬件直接支持的指令集格式

    字节码执行引擎的模型概念

    所有Java虚拟机的执行引擎的工作模型都是一样的,只是实现方式可能存在差别,它们的工作模型都是:输入字节码的二进制流,处理过程是字节码解析执行的等效过程,执行完成后输出执行结果。
    image.png
    从具体实现上来说,Java虚拟机一般有3种选择:

  • 解释执行:通过解释器执行

  • 编译执行:通过即时编译器产生本地代码执行
  • 两者兼具