编程语言
首页 > 编程语言> > java对象在JVM堆中的数据结构

java对象在JVM堆中的数据结构

作者:互联网

数据结构

java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢?
image

对象头存放的是这个对象的一些元数据信息。例如每个对象都有哈希值,GC分代年龄,锁状态标志等,这些信息就是存放在对象头中。

对象真正存储的有效信息就是放在这里的,也是在程序代码中所定义的各种类型的字段内容。无论是从父类继承下来的,还是在子类中定义的,都需要记录起来。

对齐填充并不是必然存在的,也没有特别的含义,它仅仅起着占位符的作用。由于HotSpot VM的自动内存管理系统要求对象起始地址必须是8字节的整数倍,换句话说,就是对象的大小必须是8字节的整数倍。而对象头部分正好是8字节的倍数(1倍或者2倍),因此,当对象实例数据部分没有对齐时,就需要通过对齐填充来补全。

转载

https://www.cnblogs.com/james111/p/7273953.html

标签:java,字节,填充,对象,存放,JVM,对齐,数据结构,堆中
来源: https://www.cnblogs.com/xiaofengshan/p/15416892.html