Java PC寄存器中的数据在方法正常返回后是如何恢复的,不同的JVM实现会采用不同方法吗?

zerohuan
  • 10

《深入理解Java虚拟机》中说:“一般来说,方法正常退出时,调用者的PC计数器的值可以作为返回地址,栈帧中很可能会保存这个计数器值。”。为什么是“可以作为”和“很可能”,有点模糊,具体是保存在栈帧的什么地方呢,有什么其他实现吗?

评论
阅读 2.4k
1 个回答

因为寄存器的操作是Java开发者来说是透明的,也就是说JVM们可以不一定是按上述的这种方法来实现,只要Java代码在任何情况下执行的结果一致,那就能认为JVM是可靠的,并不非要按照相同的方式去操作寄存器。

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏