Java类对象内存布局
Java类对象内存布局
对象头
mark word
存储对象运行时数据,如 HashCode 、GC年龄代、线程以及锁相关的信息。
32位虚拟机中其大小为 4字节,64位虚拟机中其为 8字节。
类型指针
指向其类结构元数据(方法区中类信息),虚拟机通过这个来确定这个对象是哪个类的实例。
默认大小为4 字节,若64位虚拟机中取消指针压缩则为 8字节(Jdk 1.6之后默认开启指针压缩)。
数组长度
非必须存在,只有 数组类型的对象 才会存在该数据空间。
默认大小为4 字节
空白填充
只会在数组类型对象才会存在。
数组类型的对象 :
若是64位虚拟机且取消指针压缩则会产生 4字节 的空白填充。
实例数据
基础类型
如 int 4字节、long 8字节计算。
引用类型
存储对应引用对象地址的指针。
默认大小为4 字节,若64位虚拟机中取消指针压缩则为 8字节。
补齐填充
保证整个对象大小维持在 8字节的整数倍,不够整数倍大小则填充对象至8字节整数倍大小。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律