int[70][80][500]和int[500][80][70]内存大小

gg22g2

以前在创建一个int数组对象后,只知道能放多少个数,但是没有算过,需要多少内存空间。
今天看到一篇文章,是比较比较 new int2 与 new int100两者内存大小的,发现差的还是挺多的,之后就自己尝试创建int70[500]和int500[70],分别分析内存使用情况。
对于int70[500]:
一维: int[][][]
8字节 对象头部
4字节 数组长度描述
4*70 一维的引用宽度
padding 4
一共 296 字节
二维 int[][]
8*70字节 对象头部
4*70字节 数组长度描述
47080 二维的引用宽度
一共 23240 字节
三维 int[]
87080字节 对象头部
47080字节 数组长度描述
450070*80 存储内
一共 11267200 字节
总占用字节数 11290736.
对于int500[70]
一维: int[][][]
8字节 对象头部
4字节 数组长度描述
4*500 一维的引用宽度
padding 4
共 2016 字节
二维 int[][]
8*500字节 对象头部
4*500字节 数组长度描述
450080 二维的引用宽度
共 166000 字节
三维 int[]
850080字节 对象头部
450080字节 数组长度描述
450080*70 存储内容
一共 11680000 字节
总占用字节数 11848016
对于一个可以存放2800000个元素的数组,两者的差的内存为557280字节,差不多是544KB,

阅读 468
213 声望
5 粉丝
0 条评论
你知道吗?

213 声望
5 粉丝
文章目录
宣传栏