JVM之字节码指令简介

java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字以及跟随其后的零至多个代表此操作所需的参数而构成的。

字节码与数据类型

加载和存储指令:

将数据在栈帧中的局部变量表和操作数栈直间来回传输。

运算指令:

对两个操作数栈上的值进行某种特定运算,并把结果重新存入操作栈顶。

类型转换指令:

将两种不同的数值类型进行互相转换。

对象创建与访问指令:new***

操作数栈管理指令:pop、dup、swap、

控制转移指令:

方法调用和返回指令:

异常处理指令:

同步指令:使用管程(Monitor)来实现。通常使用指令集monitorenter、monitorexit这两条指令来实现synchronized加锁语义。虚拟机从方法常量池的方法表结构中的ACC_SYNCHRONIZED访问标志来得知一个方法是否声明为同步。当方法调用时调用指令就会检查这个方法的ACC_SYNCHRONIZED访问标志是否被设置。

你可能感兴趣的:(JVM)