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

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

阅读 3.7k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题