在hotSpot虚拟机中,对象在内存中的布局可以分成对象头、实例数据、对齐填充三部分。

对象头:主要包括:

            1、对象自身的运行行元数据,比如哈希码、GC分代年龄、锁状态标志等,这部分长度在32位虚拟机中为32bit(64位中为64bit),为方便存储这部门的数据结构不是固定的。

    2、一个类型指针,指向类元数据,表明该对象所属的类型;另外如果对象是Java数组,那么对象头中还必须有一块用于记录数组长度的数据。

实例数据:它是对象真正存储的有效信息,包括程序代码中定义的各种类型的字段(包括从父类继承下来的和本身拥有的字段)

对齐填充:它不是必要存在的,仅仅起着占位符的作用;当对象实例数据部分没有对齐时,就需要通过对齐填充来补全

相关文章:

  • 2022-01-08
  • 2022-12-23
  • 2021-04-02
  • 2021-07-12
  • 2021-10-16
  • 2021-06-20
  • 2021-10-12
猜你喜欢
  • 2021-09-18
  • 2021-08-02
  • 2021-06-28
  • 2021-05-06
  • 2022-01-21
  • 2021-07-01
相关资源
相似解决方案