个“操作数栈”及一个“局部变量”数组。操作数栈用于计算操作数和接收被调用方法的返回值，而局部变量与寄存器的用途相同，也用于传递方法参数。故Java虚拟机既是堆栈机器，也是寄存器机。
字节码指令.Java虚拟机拥有进行下列任务的指令集：指令集存在的目的是为了保证二进制文件的兼容性。每个独立宿主操作系统需要对Java虚拟机及运行时环境的不同实现。这些Java虚拟机以相同方式语义解析字节码，但具体实现可能有所不同。比模拟字节码更复杂的是在兼容且高效的情况下实现必须映射至不同的宿主操作