int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
在這個例子中,是存儲在數組內作爲一個基元或作爲一個對象的值0?在數組中,元素是否存儲了基元或對象?
非常感謝
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
在這個例子中,是存儲在數組內作爲一個基元或作爲一個對象的值0?在數組中,元素是否存儲了基元或對象?
非常感謝
在這種情況下,該值存儲爲原語。如果將類型更改爲原始的包裝Integer
,則該值將作爲「自動裝箱」Object
。例如,此代碼會自動複製您的值:
Integer[] array = new Integer[10];
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
在Java中,同時存在基元數組和對象數組。
int[]
是一個基元數組,因此0
被存儲爲一個基元。
對應的對象數組的類型應該是Integer[]
。將0
存儲在這樣一個數組中會導致它被「自動裝箱」成一個Integer
對象。
值得指出的是,Java容器(以及任何其他泛型類)只能用於對象。例如,不可能構建int
的List
,僅的List
。正如我上面解釋的,這個限制不適用於數組。
非常感謝 – user1296058