Java对象的内存结构
Java对象的内存结构分为对象头、对象体和对齐字节。
1.对象头
1.1标记字
用来存储自身运行时的数据,例如:对象的分代年龄、hashCode、锁状态等信息。
1.2类对象指针
用来存储方法区中字节码对象的地址,JVM通过这个指针来确定这个对象是属于那个类的实例。
1.3数组长度
如果对象是数组,则该字段记录数组的长度,如果不是数组,该字段不存在。是一个可选字段。
2.对象体
对象的成员属性,也包括父类的成员属性。
3.对齐字节
对齐字节也叫作填充对齐,其作用是用来保证Java对象所占内存字节数为8的倍数HotSpot VM的内存管理要求对象起始地址必须是8字节的整数倍