int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
在这个例子中,值0是作为基元还是作为对象存储在数组中的?
非常感谢
答案 0 :(得分:5)
在这种情况下,该值存储为基元。如果您将类型更改为基元的包装 Integer
,则该值将作为“自动装箱”Object
进入。例如,此代码会自动显示您的值:
Integer[] array = new Integer[10];
for (int i = 0; i < array.length; i++) {
array[i] = 0;
}
答案 1 :(得分:2)
在Java中,有基元数组和对象数组。
int[]
是一个基元数组,因此0
存储为基元。
对应的对象数组的类型为Integer[]
。将0
存储在此类数组中会导致它被“自动装箱”到Integer
对象中。
值得指出的是,Java容器(以及任何其他泛型类)只能用于对象。例如,构建List
int
,List
只Integer
是不可能的。如上所述,此限制不适用于数组。