我必须回答问题。
给出的是功能:
show(int a, int b)
{
int v1;
int v2;
}
a和b是参数。 v1和v2是局部变量。绘制一个堆栈,其中a,b,v1,v2,返回地址的旧帧指针是清楚的。还显示高和低堆栈地址的位置。
我希望我已经足够清楚了。
编辑:
我现在拥有的是:
v2 <-- SP
v1
prevLV <-- LV
Ra
a
b
答案 0 :(得分:0)
绘制一个明确的图片很难,因为它取决于JVM的实现,但你现在拥有的是非常不正确的。
因为Java不区分args和temps(参见iload等等。字节码),所以它们需要在内存中并排显示,或者某人必须从调用者挂起的堆栈中复制它们在构造时间(这往往是昂贵的)对被调用者。