java中如何计算一个对象在内存中的大小呢?
下文笔者讲述java中获取一个对象在内存中大小的方法分享,如下所示
java中一个对象的大小等于 对象头所占内存大小 + 对象实际数据所占大小 + 对其填充所占内存大小
head 对象头
对象头的大小依照操作系统不同而有所改变: 在32位jvm中,占8字节。 在64位JVM中,根据是否开启指针压缩功能,也分为不同的情况: 开启(open)指针压缩功能,对象头所占内存大小为12字节 不开启(close)指针压缩功能,对象头所占内存大小为16字节
Data 对象数据
对象数据的实际大小 需要根据属性的类型进行计算。 java的数据类型分为基本类型(8个)和引用类型 基本类型按照基本类型的所占大小去计算
fill 填充
对其填充所占内存大小 需要求对象大小是8的整数倍 如果不是8的整数倍 需对其补位对齐
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。