对象头
对象头里有啥
- MarkWord
| 锁状态 | 25bit | 4bit | 1bit | 2bit | |
|---|---|---|---|---|---|
| 23bit | 2bit | 是否偏向锁 | 锁标志位 | ||
| 无锁 | 对象的HashCode | 分代年龄 | 0 | 01 | |
| 偏向锁 | 线程ID | Epoch | 分代年龄 | 1 | 01 |
| 轻量级锁 | 指向栈中锁记录 | 的 | 指 | 针 | 00 |
| 重量级锁 | 指向重量级锁 | 的 | 指 | 针 | 10 |
| GC标记 | 11 |
- 指向类的指针。该指针在32位JVM中的长度是32bit,在64位JVM中长度是64bit。
- 实例数据
- 对齐填充字节。因为JVM要求java的对象占的内存大小应该是8bit的倍数,所以后面有几个字节用于把对象的大小补齐至8bit的倍数

浙公网安备 33010602011771号