A方法调用B方法,JVM是怎么一步一步调用的

首先,A方法在调用B的方法的字节码的地方,PC就记录了当前栈帧字节码的执行的位置,调用B方法的时候,构造B栈帧的时候,将B栈帧的返回地址赋值为A的字节码执行的位置,以便返回继续调用,然后将参数存储到对应的B方法的局部变量表中,设置B方法为当前栈帧,并将设置pc设置为要调用的方法的第一条指令的操作码,从该方法的第一条指令继续执行,执行完毕(正常返回或者异常返回),都会回到方法被调用的位置,B栈帧pop出栈,A栈帧恢复到当前栈帧,PC恢复到原来的A的字节码执行位置继续往下执行。

JVM规范截图:

深入理解JAVA虚拟机-周至明 部分截图:

 

原文地址:https://www.cnblogs.com/feibazhf/p/12749205.html