对象在内存中包括四部分:
markword。前8字节 对象头。
存储对象运行时数据{ 哈希吗,GC分代年龄,锁信息(锁状态 标示,线程持有的锁,偏向线程ID,偏向线程时间戳) }
classpoint 类指针 4字节 对象头。 指向元数据
-----------如果是数组,对象头还有第三个==》记录数组长度的数据
instance data 实例数据 实例数据
padding 对齐 对齐填充。8字节整数的倍数
例子:
加锁会修改对象头里的markword,锁释放后会回到之前状态。
对象在内存中的布局
最新推荐文章于 2023-07-21 23:11:10 发布