Java 推入堆栈意味着什么?移动还是复制方法?
当一个对象调用一个函数时,该函数将从方法区域推送到堆栈中。我的问题是: 问:在这种情况下,“推动”是什么意思Java 推入堆栈意味着什么?移动还是复制方法?,java,methods,memory-management,heap-memory,stack-memory,Java,Methods,Memory Management,Heap Memory,Stack Memory,当一个对象调用一个函数时,该函数将从方法区域推送到堆栈中。我的问题是: 问:在这种情况下,“推动”是什么意思 这仅仅意味着移动(从方法区域)或复制函数(推送到堆栈上的方法副本)?方法本身不会推送到堆栈上。将推送返回地址以及传递给正在调用的方法的任何参数。例如: void foo() { int x = bar(); int y = x*3; ... } var bar() { ... return 5; } 当foo调用bar时,将要执行的下一条指令的
这仅仅意味着移动(从方法区域)或复制函数(推送到堆栈上的方法副本)?方法本身不会推送到堆栈上。将推送返回地址以及传递给正在调用的方法的任何参数。例如:
void foo() {
int x = bar();
int y = x*3;
...
}
var bar() {
...
return 5;
}
当foo
调用bar
时,将要执行的下一条指令的地址(分配y
)推送到调用堆栈上。控件然后分支到执行其操作的bar
,并将值5
放入返回寄存器中(值的返回方式在这里并不相关)。然后,运行时从调用堆栈弹出返回值,并分支回该指令。继续执行y=x*3
如果您搜索[java方法调用堆栈],您会发现一些很好的例子,其中有更详细的解释