Serendipity0928 2021-12-24 14:00 采纳率: 0%
浏览 18
已结题

如何理解JVM对虚方法的调用过程?

最近学习JVM栈帧的时候,对其中的动态链接产生了很大的疑问。按官网说法是,栈帧中保存的动态链接是一个指向该方法类型的运行时常量池的引用。那该引用应该是指向当前类的运行时常量池吧。

Father father = new Father();
father.doSomething();
Father child = new Child();
child.doSomething();   // ① 这个虚方法的调用

但是,当我们调用虚方法的时候,如上代码①处所示。第一步是通过操作数栈中拿到栈顶的child对象的引用。第二步根据该对象引用通过Child类的运行时常量池中的虚方法表中的dosomething方法。第三步加载实际调用方法的字节码执行。

所以我的问题是,为什么在如上的动态调用过程中,我并没有用到栈帧中用于动态链接的引用??

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-12-27 10:39
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 创建了问题 12月24日