操作数栈也是栈帧中重要的内容之一,它主要用于保存计算过程的中间结果,同时作为计算过程中变量临时的存储空间。
操作数栈也是一个先进后出的数据结构,只支持入栈和出栈两种操作。许多Java字节码指令都需要通过操作数栈进行参数传递。比如iadd指令,它就会在操作数栈中弹出两个整数并进行加法计算,计算结果会被入栈,如图2.10所示,显示了iadd执行前后操作数栈的变化。
图2.10 iadd指令与操作数栈的变化
有关操作数栈和局部变量表使用的详细案例,读者可以参考本书11.1节。