Java查看对象头大小
添加依赖
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<version>0.17</version>
</dependency>
查看对象头大小
@Test
void header() {
ClassLayout layout = ClassLayout.parseInstance(new Object());
System.out.println(layout.toPrintable());
ClassLayout layout2 = ClassLayout.parseInstance(new int[]{});
System.out.println(layout2.toPrintable());
User user = new User();
user.setAge(2);
user.setName("hello");
ClassLayout layout3 = ClassLayout.parseInstance(user);
System.out.println(layout3.toPrintable());
}
@Data
public static class User {
private String name;
private Integer age;
private String remark;
}
输出:
JavaObjectHeaderTest$User object internals:
OFF SZ TYPE DESCRIPTION VALUE
0 8 (object header: mark) 0x0000000000000001 (non-biasable; age: 0)
8 4 (object header: class) 0x00d00eb0
12 4 java.lang.String User.name (object)
16 4 java.lang.Integer User.age 2
20 4 java.lang.String User.remark null
Instance size: 24 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total
创建一个自定义User对象,对象头大小为24 Bytes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)