https://blog.csdn.net/weixin_43606226/article/details/123530728
其中Synchronized涉及到重量级的锁,重量级的锁就和Monitor有关。
前置知识,JAVA的对象头组成
在32位虚拟机中
一个JAVA对象的对象头组成如下所示:
普通对象(总共8个字节,Mark Word占4个字节,Klass Word 占4个字节,Klass Word就是对对象信息的描述):
|-----------------------------------------------------------|
| Object Header (64 bits) |
|---------------------------------|-------------------------|
| Mark Word (32 bits) | Klass Word (32 bits) |
|---------------------------------|-------------------------|
数组对象(总共12个字节,Mark Word占4个字节,Klass Word 占4个字节,数组长度占4个字节):
|---------------------------------------------------------------------------------|
| Object Header (96 bits) |
|--------------------------------|-----------------------|------------------------|
| Mark Word(32bits) | Klass Word(32bits) | array length(32bits) |
|--------------------------------|-----------------------|------------------------|
在64位虚拟机中
一个JAVA对象的对象头组成如下所示: