以前在创立一个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,