有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java推入堆栈意味着什么?移动还是复制方法?

当一个对象调用一个函数时,函数将从方法区域被推入堆栈。我的问题是:

问:在这种情况下,“推动”是什么意思

这仅仅意味着移动(从方法区域)或复制函数(将方法推到堆栈上的复制


共 (1) 个答案

  1. # 1 楼答案

    方法本身不会被推到堆栈上。将推送返回地址,以及传递给正在调用的方法的任何参数。例如:

    void foo() {
        int x = bar();
        int y = x*3;
        ...
    }
    
    var bar() {
        ...
        return 5;
    }
    

    foo调用bar时,将要执行的下一条指令的地址(分配y)推送到调用堆栈上。控件然后分支到bar,它完成了自己的工作,并将值5放入返回寄存器中(在这里,返回值的方式并不相关)。然后,运行时从调用堆栈弹出返回值,并分支回该指令。继续执行y = x*3

    如果你搜索[java方法调用堆栈],你会发现一些很好的例子,其中有更详细的解释