Java对象结构

Java对象结构

32位JVM中 mark word结构信息:

 

锁状态 25bit 4bit 1bit 2bit
23bit 2bit 是否偏向锁 锁标志位
无锁 对象的HashCode 分代年龄 0 01
偏向锁 线程ID Epoch 分代年龄 1 01
轻量级锁 指向栈中锁记录的指针 00
重量级锁 指向重量级锁的指针 10
GC标记 11

注意:无锁和偏向锁的锁标志位都是01,利用额外1bit区分是否偏向锁 

学习java synchronized关键字时 会用到这部分知识