1. synchronized同步方法
synchronized同步方法的字节码还原
- java声明的方法在jvm中的结构格式method_info
method_info {
u2 access_flags;
u2 name_index;
u2 descriptor_index;
u2 attributes_count;
attribute_info attributes[attributes_count];
}
- 其中关注method_info的access_flags取值
- ACC_SYNCHRONIZED,对应标示值为0x0020,作用是声明为同步方法,在jvm内部包装一个监视器锁被调用
- ACC_PUBLIC,对应标示值为0x0001,作用声明方法为public,运行被包外的类公开访问
- 带synchronized的部分java代码
// Account.java
public synchronized void setBalance(doub