java对象内存布局
2018-09-23 本文已影响0人
小白牙_2fc6
前言:hotspot虚拟机中,对象存储的布局可以分为3块区域:对象头,实例数据,对齐数据
一:对象头
对象头分为两个部分:第一部分用于存储对象自身的运行时数据,如哈希码,Gc分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳。第二部分是类型指针,既对象指向它的类元数据的指针,虚拟机通过这个对象来确定是哪个类的实例。
二:实例数据
该部分信息是真正存储的有效信息,也是在程序代码中定义的各种类型的字段内容。
三:对齐数据
对齐填充并不是必然存在,只起占位作用,原因是对象的大小必须是8字节的整数倍。