猿问

入栈是什么意思?移动或复制方法?

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

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

这是否仅仅意味着移动(从方法区)或复制功能(的副本的方法的压入堆栈)?


芜湖不芜
浏览 164回答 1
1回答

交互式爱情

方法本身不会被压入堆栈。推送返回地址,以及传递给您正在调用的方法的任何参数。例如:void foo() {    int x = bar();    int y = x*3;    ...}var bar() {    ...    return 5;}在foo调用 时bar,将要执行的下一条指令的地址(对 的赋值y)被压入调用堆栈。控制然后分支到bar,它做它的事情,并将值5放在返回寄存器中(如何返回值在这里并不真正相关)。然后,运行时从调用堆栈中弹出返回值并分支回到该指令。继续执行y = x*3。如果您搜索 [java 方法调用堆栈],您会发现一些很好的示例,其中包含更详细的解释。
随时随地看视频慕课网APP

相关分类

Java
我要回答