Java对象在内存中的存储分3块区域

1、对象头(Header)

2、实例数据(Instance Data)

3、对齐填充(Padding)



一、对象头

哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳

类型指针



二、实例数据

各种类型的字段(父类继承下来的、子类自身定义的)

相同宽度的字段会被分配到一起


三、对齐填充

没有特别含义,仅仅起着占位符的作用(8字节的整数倍)