[TOC]
对象布局
在JVM中,对象在内存中的布局分为3块:
对象头
Mark Word
主要用于储存对象自身的运行时数据,例如对象的hashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程的ID、偏向时间戳
类型指针
而类型指针用于标识JVM通过这个指针来确定这个对象是哪个类的实例。
实例数据
它存储着对象真正的有效信息(程序代码中定义的各种类型的字段内容),无论是从父类继承来的字段还是子类中定义的
对齐填充
它并没有什么特殊的含义,仅仅只是起占位符的作用。原因呢是因为JVM要求对象的起始地址必须是8个字节的整数倍(对象的大小必须是8个字节的整数倍)