对象的内存布局和访问定位

2021-11-04  本文已影响0人  engineer_tang

1. 对象的内存布局

image.png

1.1 对象头

对象头包含两类数据,第一类是用于存储对象自身的运行时数据;第二类是类型指针,用于指向它的类型元数据,用来确定该对象实例所指向的类。

1.2 实例数据

真正存储的有效信息。

1.3 对齐填充

没有特殊意义,也不是必然存在的,起占位符的作用。HotSpot虚拟机的内存管理系统要求对象的起始地址必须是8字节的整数倍,即任何对象的大小必须是8字节的整数倍,对没对齐的部分,通过对齐方式进行补全。

2. 对象的访问定位

通过栈上的reference数据来操作堆上的具体对象。对象的访问方式主要为两种,分为使用句柄和直接指针。

HotSot主要使用第二种即直接指针访问的方式进行对象操作。

上一篇 下一篇

猜你喜欢

热点阅读