面向对象Java对象方法堆栈帧参数
因此,在java中,假设在类“Foo”中有一个非静态方法“bar()”
class Foo
{
private int m_answer;
public Foo()
{
m_answer = -1;
}
public void bar(int newAnswer)
{
m_answer = newAnswer;
}
}
然后,假设您这样调用此方法:
Foo myFoo = new Foo();
myFoo.bar(42);
现在,调用的堆栈帧包括integer参数以及用作对象内部引用的“this”参数
除了“this”和方法参数之外,还有哪些有趣的参数被复制到新的堆栈框架中
# 1 楼答案
通常是一个指向调用指令的指针,这样VM(在本机应用程序中是CPU)将知道在哪里设置指令指针(或PC - Program Counter),从而堆栈将正确展开