有大佬知道这个吗?

有大佬知道这个吗?

你先了解一下方法栈帧的结构,方法栈帧中有局部变量表和操作数栈。(你画的图就不对,cat本身并不是一个栈帧)

局部变量表的slot中会存放两个字符数组的句柄(可以理解为内存地址)。

要取其中一个数组的元素时,从局部变量表中取出对应变量的句柄,然后通过数组下标,就知道cat[0]的地址了。

 

栈就得遵守先进后出的规则,要访问栈底的元素,先要把栈底上面的全部出栈之后才行。所以是第一种。

谢谢各位大佬的回答