Java对象的内存布局

对象在堆中的存储布局可分为三部分:对象头、实例数据和对齐填充。

对象头

对象头包括两类信息。第一类用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。

另一类是类型指针,指向对象的类型元数据,JVM通过这个指针判断它是哪个类的实例。如果对象是Java数组,对象头中还要有一块记录数组长度的数据。

实例数据

存储对象的有效信息,即我们在代码里定义的各种类型的字段内容。

对齐填充

起占位符的作用,因为任何对象的大小都必须是8字节的整数倍,对象头已经被设计为8字节的整数倍,如果实例数据部分没对齐就要通过对齐填充来补全。

本文作者:aosrc

本文链接:https://www.cnblogs.com/aosrc/p/15853793.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   aosrc  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起