JVM(九)JAVA对象内存布局

JVM(九)JAVA对象内存布局
1.对象头用于存储对象 的元数据信息:

  • Mark Word部分数据的长度在32位和64位机器(未开启压缩指针)中分别为32bit和64bit,存储对象自身的运行时数据如哈希值等。Mark Word一般被设计为非固定的数据结构,以便存储更多的数据信息和复用自己的存储空间。
  • 类型指针 指向它的类元数据的指针,用于判断对象属于哪个类的实例。

2.实例数据存储的是真正有效的数据,如各种字段内容,各字段的分配策略为longs/doubles、ints、shorts/chars、bytes/boolean、oops(ordinary object pointers),相同宽度的字段总是被分配到一起,便于之后取数据。父类定义的变量会出现在子类定义变量的前面。

3.对其填充部分仅起到占位符的作用;对齐填充,保证实例数据为8的倍数;