猿问
入栈是什么意思?移动或复制方法?
当一个对象调用一个函数时,该函数会从方法区被压入堆栈。我的问题是:
问:在这种情况下,“推”是什么意思?
这是否仅仅意味着
移动
(从方法区)或
复制
功能(的
副本
的方法的压入堆栈)?
芜湖不芜
浏览 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 方法调用堆栈],您会发现一些很好的示例,其中包含更详细的解释。
0
0
0
随时随地看视频
慕课网APP
相关分类
Java
我要回答