这两件事情是一样的吗?
for(int i=0; i<array.length; i++){
array[i] = null;
}
和
array = null;
答案 0 :(得分:17)
显示差异的小片段:
// declare a array variable that can hold a reference.
String [] array;
// make it null, to indicate it does not refer anything.
array = null;
// at this point there is just a array var initialized to null but no actual array.
// now allocate an array.
array = new String[3];
// now make the individual array elements null..although they already are null.
for(int i=0;i<array.length;i++)
{
array[i] = null;
}
// at this point we have a array variable, holding reference to an array,
// whose individual elements are null.
答案 1 :(得分:8)
不,第一个使数组的每个元素为null,数组的长度仍然是array.length,第二个将数组变量设置为null。
答案 2 :(得分:5)
不,它不一样。
事实上,要正确运行第一段代码,应该像这样声明和初始化数组变量(例如)
Object[] array = new Object[5];
这将创建一个包含5个元素的数组,每个元素的值都为null
。
一旦你有了这个,在第一个例子中你正在做的是为每个array[i]
元素分配一个空值。 array
不会是null
。所以你应该有这样的东西。
array - &gt;
通过执行array = null
,您说数组不再引用该元素数组。现在你应该
数组 - &gt;空
答案 3 :(得分:0)
完全没有。
在第一种情况下,您将数组中的所有引用设置为null。
在第二种情况下,您将对数组本身的引用设置为null。
答案 4 :(得分:0)
它们都不会起作用!如果你有一个整数数组,并且你试图使一个元素为null,那么你就无法做到 ARR [I] = NULL; 因为整数不能转换为null。