Java内存布局和对象头

对象的内存布局

在HotSpot虚拟机里,对象在堆内存中的存储布局可以分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)

内存布局详解

  • 对象头
    • 对象标记Mark Work
    • 类元信息(类型指针)
  • 实例数据
  • 对齐填充

对象内部结构分为:对象头、实例数据、对齐填充(保证8个字节的倍数)

对象头分为对象标记(markOop)和类元信息(klassOop),类元信息存储的是指向对象类元数据(klass)的首地址

带着问题探索

Mark Word

在64位系统下,Mark Word占了8个字节,类型指针占了8个字节,一共64个字节

类元信息

类元信息也叫类型指针

实例数据

存放类的属性(Field)数据信息,包括父类的属性信息

对齐填充

虚拟机要求对象起始地址必须是8字节的整数倍


Java内存布局和对象头
http://example.com/2023/09/04/Java内存布局和对象头/
Author
Posted on
September 4, 2023
Licensed under