我正在阅读有关JVM体系结构的内容。今天我读到了操作数堆栈的概念。根据一篇文章:
在字节码指令的执行过程中,操作数堆栈的使用方式类似于在本机CPU中使用通用寄存器。
我不明白:操作数堆栈到底是什么,以及它在jvm中是如何工作的?
发布于 2014-06-26 09:38:53
操作数堆栈保存运算符用于执行操作的操作数。操作数堆栈上的每个条目都可以保存任何Java虚拟机类型的值。
来自JVM规范,
Java虚拟机指令从操作数堆栈中获取操作数,对操作数进行操作,并将结果推回操作数堆栈。操作数堆栈还用于准备传递给方法的参数和接收方法结果。
例如,iadd指令将添加两个整数值,因此它将弹出操作数堆栈中的前两个整数值,并将结果添加到操作数堆栈中。
有关更详细的参考资料,您可以检查JVMS#2.5 :运行时数据区域
在操作数堆栈的上下文中对其进行总结,
_______________________________
| _____________________ |
| | + --------+ | |
| JVM | | Operand | | |
| Stack | FRAME | Stack | | |
| | +---------+ | |
| |_____________________| |
|_______________________________|https://stackoverflow.com/questions/24427056
复制相似问题