对象头:
包括两部分信息,第一部分存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有锁、偏向线程ID、偏向时间戳等。另一部分是类型指针,指向对象类的元数据,确定对象是哪个类的实例。不是所有虚拟机都必须保留类型指针,因为查找对象元数据信息并不一定要经过对象本身。
实例数据:
程序中所定义的各种类型的字段内容(包括从父类继承下来的),存储顺序受虚拟机分配策略参数和字段在程序中定义的顺序影响。虚拟机默认的分配策略,相同宽度的字段分配到一起,父类中定义的字段出现在子类之前。
对齐填充(可选):
起占位符的作用,保证对象的大小是8字节的整数倍(JVM自动管理系统的要求)。
对象的内存分配
最新推荐文章于 2024-03-08 09:07:40 发布