之前在建立一個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,數組