Java

Java对象的内存布局以及访问方式

2019-10-04  本文已影响0人  Okami_

对象的内存布局

对象头

Mark Word
存储内容 占用空间
对象哈希码 25bit
对象分代年龄 4bit
锁标志位 2bit
固定值0 1bit
存储内容 标志位 状态
对象哈希码、对象分代年龄 01 未锁定
指向锁记录的指针 00 轻量级锁定
指向重量级锁的指针 10 膨胀(重量级锁定)
空,不需要记录信息 11 GC标记
偏向线程ID、偏向时间戳、对象分代年龄 01 可偏向
类型指针
数组的情况

实例数据

对齐填充

对象的访问方式

句柄池

通过句柄访问对象

直接指针

通过直接指针访问对象

使用句柄 VS 直接指针

上一篇 下一篇

猜你喜欢

热点阅读