执行引擎是Java虚拟机最核心的部分,和物理机不同,虚拟机是建立在整个操作系统之上,可以出现两种执行代码的方式
解释执行 通过解释器执行
编译执行 通过及时编译器产生本地的代码进行解释执行
但是其结果都是输入的是字节码文件,返回的是执行结果
在Java之中,采用了栈帧来支持虚拟机进行方法调用或者方法执行的数据结构,存储了局部变量表 操作数栈 动态链接等信息,任何一个方法的执行必然伴随着入栈和出栈
而一个方法可能会调用其他方法,导致多个方法共同处于执行状态,于是只有位于栈顶的栈帧才是真正有效的,称为当前栈帧,相关的方法称为当前方法
在线程中,我们的栈帧结构如下,
接下来,就是分别讲解这些概念