| 长度 | -内容 | -说明 | -
| 32/64bit | -Mark Word | -存储对象的hashCode或锁信息等。 | -
| 32/64bit | -Class Metadata Address | -存储到对象类型数据的指针 | -
| 32/64bit | -Array length | -数组的长度(如果当前对象是数组) | -
| 锁 | -优点 | -缺点 | -适用场景 | -
| 偏向锁 | -加锁和解锁不需要额外的消耗,和执行非同步方法比仅存在纳秒级的差距。 | -如果线程间存在锁竞争,会带来额外的锁撤销的消耗。 | -适用于只有一个线程访问同步块场景。</td | -
| 轻量级锁 | -竞争的线程不会阻塞,提高了程序的响应速度。 | -如果始终得不到锁竞争的线程使用自旋会消耗CPU | -追求响应时间。同步块执行速度非常快。 | -
| 重量级锁 | -线程竞争不使用自旋,不会消耗CPU。 | -线程阻塞,响应时间缓慢。 | -追求吞吐量。同步块执行速度较长。 | -