synchronized底层原理 对象头 要搞清楚Synchronize的底层原理,先了解一下对象头 每个对象都会有一个对象头 如果这个对象是是数组类型,那么jvm会用3个字宽(32位虚拟机中,1个字宽4个字节)存储对象头,如果是非数组类型,jvm会用2个字宽存储对象头 对象头的存储结构如上 其中Mark Word中的状态变化又如上图 synchronized的宏观实现 我们主要来说重量级锁的实现