1--我们写了一个java类,那么生成一个对象占用多大的内存?

2022/7/1 5:20:45

本文主要是介绍1--我们写了一个java类,那么生成一个对象占用多大的内存?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

public class Student {
    private long id;
    private long userId;
    private byte state;
    private long createMillis;
}

这是一个普通的java类,包含几个简单的字段,那么这个类生成一个对象占用多大的内存呢?

通常,说占40个字节就可以了。这是怎么算出来的呢?

1:拆分对象   对象头   对象数据   对象填充

2:分别计算

2.1:对象头  占12字节

    对象头包含两个部分 :标记字 ,占用一个机器字,8字节; 类型指针,占一个机器字,8字节  

    特别说明:1:如果堆内存小于32GB,JVM会默认开启指针压缩,压缩后的指针占4个字节

      2:如果是数组,对象头中还会多出一个   “数组长度”,int类型,占4字节。

2.2:对象数据  占 25字节

  三个long数据 8*3=24字节,一个byte  1字节

2.3:对象填充

  已经计算完的 合计 是37字节。那么填充多少字节?

  java对象大小默认按8字节对齐,也就是是8的整数倍,那么需要填充3字节。

3:合计 12+25+3=40字节。



这篇关于1--我们写了一个java类,那么生成一个对象占用多大的内存?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程