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

之前在建立一个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,数组