[英]Size of 2d array in Java
我用Java定義了一個二維數組。 當我讀到它(即2d數組)時,這個2d數組的第一個維度是一個指針(我不知道它是否正確,請告訴我)。 因此,如果我將其視為指針,在64位系統中,執行后以下代碼的大小是多少?
short [][] array1 = new short [10][];
short[][] array2 = new short[10][];
for (int i = 0; i < 10; i++)
array1[i] = new short[1];
for (int i = 0; i < 10; i++)
array2[i] = array1[i];
請告訴我上述代碼的大小。
對於每個一維數組,除了數組中數據的空間外,您還有24字節的開銷。
for
循環中,您將創建10個數組,每個數組均為24 + 2 * 10 = 44字節。 這些被填充到至少8個字節的邊界,因此總共占用48個字節或480個字節。 請注意,實際用法取決於JVM。 例如:
為了查看外部數組和內部數組之間的差異,像這樣重寫代碼可能會有所幫助:
short[][] outerArray = new short[10][]; // Array of references to short arrays
short[] innerArray; // Array of shorts
for (int i = 0; i < 10; i++) {
innerArray = new short[1];
outerArray[i] = innerArray;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.