首页 > 基础资料 博客日记

java对象大小计算方法及内存布局

2023-07-24 19:39:52基础资料围观229

文章java对象大小计算方法及内存布局分享给大家,欢迎收藏Java资料网,专注分享技术知识

1 对象的内存布局

java对象在内存中主要是有:对象头、对象体、padding 3部分组成
image

1.1 对象头

Mark Word 用于存储对象的运行时信息。如哈希码、GC分代年龄、锁状态、偏向线程ID、偏向时间戳等。
字段长度。32 位机: 32位; 64位机:64位

Klass Pointer 指向对象对应的Class对象的内存地址
字段长度。32 位机: 32位; 64位机:64位,8字节,如果启用指针压缩则为4字节。

数组对象长度 如果对象是数组,需要保存数组长度的字段。字段长度:4字节

1.2 对象体

对象体中包含各类数据类型。数据类型分为基本数据类型、引用数据类型

  • 基本数据类型长度
类型 大小(Bytes)
boolean 1
byte 1
short 2
char 2
int 4
float 4
long 8
double 8
  • 引用数据类型

字段长度:32 位机中占 4字节, 64位机中占 8字节。

1.3 Padding

由于hotspot虚拟机的自动内存管理系统要求对象起始地址必须是 8 字节的整数倍,因此任何对象大小必须是 8字节的整数倍。

参考文献


文章来源:https://www.cnblogs.com/zhaopengcheng/p/16498013.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云