版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/yangyong0717/article/details/79165685
Java中數組被實現爲對象,它們通常都會由於記錄長度而須要額外的內存。對於一個原始數據類型的數組,通常須要24字節的頭信息再加上保存值所需的內存,其中24字節的頭信息分別包含如下幾個部分。html
下面分別分析一維、二維、三維的數組存儲狀況。數組
下面首先對一維數組進行分析,以int[]型數組爲例,假設數組長度爲N,那麼須要的內存佔用(24+4N)個字節,緣由分析比較簡單,圖解示例以下:即佔用內存總量=頭信息內存+數組N個int值佔用內存。架構
對於二維數組進行分析,首先對於多維數組的概念,你們能夠參考這篇博客:https://www.cnblogs.com/chenyangyao/p/5222696.html.net
多維數組實際存儲的時候就是一維數組,高維數組不斷的降維轉化爲低維數組,例如二維數組就是一個數組的數組,即每個一維數組裏麪包含一個另一個一維數組的引用。以一個MxN的double類型的二維數組爲例,其實際佔用內存總量爲:(8MN+32M+24) 約等於8MN。這裏仍然以圖示進行講解:(這裏以64位架構的計算機爲例,每一個對象引用地址爲8位)htm
對於三維數組的分析,仍然以M x N x Q的double數組爲例,與上面的分析過程相似,能夠將三維數組轉化成一個一維數組,該一維數組保存指向二維數組的引用。對於二維數組的分析過程則和上面的過程同樣。對象
則佔用的內存總共爲:24 + 8M + M*(24 + 8N) + M*N(24 + 8Q)字節。blog
對於更高維的數據存儲容量,能夠按照類似的方法進行分析便可。
---------------------
做者:yangyongUestc
來源:CSDN
原文:https://blog.csdn.net/yangyong0717/article/details/79165685
版權聲明:本文爲博主原創文章,轉載請附上博文連接!內存