对象头由什么构成

[TOC]

对象布局

在JVM中,对象在内存中的布局分为3块:

对象头

Mark Word

主要用于储存对象自身的运行时数据,例如对象的hashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程的ID、偏向时间戳

类型指针

而类型指针用于标识JVM通过这个指针来确定这个对象是哪个类的实例。

img

实例数据

它存储着对象真正的有效信息(程序代码中定义的各种类型的字段内容),无论是从父类继承来的字段还是子类中定义的

对齐填充

它并没有什么特殊的含义,仅仅只是起占位符的作用。原因呢是因为JVM要求对象的起始地址必须是8个字节的整数倍(对象的大小必须是8个字节的整数倍)

https://www.cnblogs.com/zhengbin/p/6490953.html