采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
一个静态方法里面的内容是下面这些 int a=2,b=3;
局部变量表是存的 slot1 a slot2 b 操作数栈中存的是什么 ?? 是 2 3 吗?
操作数栈是运行期间,发生了对数据的操作,才会有压栈弹栈的。
如果只是 定义了 int a=2,b=3; 那么,这个数据是放到 局部变量表里面的,而不是放到操作数栈上。
要使用这两个数据了,才会发生压栈的操作, 比如:你要计算 a+b,就会先把a取出来压栈到操作数栈的栈顶,然后再取出b的值,压栈到操作数栈的栈顶,然后再做加法计算,然后把结果压栈到操作数栈的栈顶
是不是就像一道酸菜鱼一样 鱼,酸菜,调料。都是存放在局部变量里面的。 现在要调用做鱼这个方法了。 创建一个操作数栈 先放调料 在放酸菜 最后放鱼 酸菜鱼做好了(方法退出) 然后依次取出 鱼,酸菜,调料 最后销毁操作数栈。 这个过程没错吧
登录后可查看更多问答,登录/注册
无论是要准备面试还是内功提升,只要你做Java,就需要学习JVM
969 2
1.4k 2
918 1
1.2k 7
1.1k 5