JVM采用面向操作数栈的架构,大多数指令都不包含操作数,指令参数都存放在操作数栈中。
JVM的操作码长度为1字节,在处理长度超过1字节的数据时,不得不在运行时从字节中重建出具体数据的结构,例如要将一个16位长度的无符号整数使用两个无符号字节存储起来。
并非每种数据类型和每一种操作都有对应的指令。
加载和存储指令用来将数据在栈帧中的局部变量表和操作数栈之间来回传输。
运算指令。
类型转换指令。
对象创建与访问指令。
操作数栈管理指令。
控制转移指令。
异常处理指令。
同步指令。
Class文件格式以及字节码指令集。