JVM执行引擎(详细+面试)
文章目录
概述
执行引擎是Java虚拟机核心的组成部分之一。
- JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM识别的字节码指令、符号表,以及其他辅助信息。
- 如果想要让一个Java程序运行起来,执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者。
- 前端编译:从Java程序员-字节码晚间的这个过程叫前端编译。
- 执行引擎这里由两种行为:一种是解释执行,一种是编译执行(这里的是后端编译)。
Java代码编译和执行过程
大部分的程序代码转换为物理机的目标代码或者虚拟机能执行的指令集之前,都需要执行上述步骤。
什么是解释器?什么是JIT编译器?
解释器:当Java虚拟机启动时会根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容“翻译”为对应平台的本地机器指令执行。
JIT(Just In Time C