Untitled

对象头

Mark Word

用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等。

32位JVM中的长度是32bit,在64位JVM中长度是64bit。

在不同的锁状态下存储的内容不同,在32位JVM中是这么存的

Untitled

在64位JVM中是这么存的

Untitled

对象的hashCode: 若不调用则不主动存。

虽然它们在不同位数的JVM中长度不一样,但是基本组成内容是一致的。

Klass Pointer