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 是作为原始值还是对象存储在数组中?
非常感谢
在这种情况下,该值存储为原语。如果您将类型更改为原始的wrapper 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 容器(以及任何其他泛型类)只能与对象一起使用。例如,不可能构造 a List
of int
,只能构造 a List
of Integer
。正如我上面解释的,这个限制不适用于数组。