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