ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 对象头\(Header\)组成 * 存储对象自身的运行时数据 * Java数组\(记录数组长度以确定数组大小\) * 类型指针\(即对象指向它的类元数据的指针,虚拟机通过该指针确定该对象是那个类的实例\) #### 对象内存布局 Hotspot的对象头主要包括两部分数据:Mark Word(标记字段)、Klass Pointer(类型指针) **Mark Word**:默认存储对象的HashCode,分代年龄和锁标志位信息。这些信息都是与对象自身定义无关的数据,所以Mark Word被设计成一个非固定的数据结构以便在极小的空间内存存储尽量多的数据。它会根据对象的状态复用自己的存储空间,也就是说在运行期间Mark Word里存储的数据会随着锁标志位的变化而变化 **Klass Point**:对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例 ![](https://img.kancloud.cn/37/c2/37c2c4e1d685f0f20625dfba5f986352_667x264.png) #### 特性 * Header长度必须是8字节的倍数 * 查找对象的元数据不一定要经过对象本身