你先了解一下方法栈帧的结构,方法栈帧中有局部变量表和操作数栈。(你画的图就不对,cat本身并不是一个栈帧)
局部变量表的slot中会存放两个字符数组的句柄(可以理解为内存地址)。
要取其中一个数组的元素时,从局部变量表中取出对应变量的句柄,然后通过数组下标,就知道cat[0]的地址了。
栈就得遵守先进后出的规则,要访问栈底的元素,先要把栈底上面的全部出栈之后才行。所以是第一种。
谢谢各位大佬的回答