请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于操作数栈存储的问题

一个静态方法里面的内容是下面这些
int a=2,b=3;

局部变量表是存的
slot1 a
slot2 b
操作数栈中存的是什么 ??
是 2 3 吗?

正在回答 回答被采纳积分+3

1回答

CC老师 2020-07-19 17:34:20

操作数栈是运行期间,发生了对数据的操作,才会有压栈弹栈的。

如果只是 定义了 int a=2,b=3; 那么,这个数据是放到 局部变量表里面的,而不是放到操作数栈上。

要使用这两个数据了,才会发生压栈的操作, 比如:你要计算  a+b,就会先把a取出来压栈到操作数栈的栈顶,然后再取出b的值,压栈到操作数栈的栈顶,然后再做加法计算,然后把结果压栈到操作数栈的栈顶

0 回复 有任何疑惑可以回复我~
  • 是不是就像一道酸菜鱼一样
    鱼,酸菜,调料。都是存放在局部变量里面的。
    现在要调用做鱼这个方法了。
    创建一个操作数栈
    先放调料
    在放酸菜
    最后放鱼
    酸菜鱼做好了(方法退出)
    然后依次取出
    鱼,酸菜,调料
    最后销毁操作数栈。
    
    这个过程没错吧
    回复 有任何疑惑可以回复我~ 2021-11-25 13:24:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信