我想知道为什么输出仍为1,2,3,4,5
,因为如果我更改doIt
中的值(例如:z[0] = 10
),则数组会发生更改。
public class Main
{
public static void main(String[] args) {
int[] array = {0,1,2,3,4,5};
testIt.doIt(array);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}
class testIt
{
public static void doIt(int [] z){
z = null
}
}
答案 0 :(得分:1)
doIt
传递了数组引用的副本,因此它无法更改原始引用(存储在array
变量中)。它只能更改此引用引用的对象的状态。因此,在z
内将doIt
设置为null会使方法之外没有任何区别。
答案 1 :(得分:1)
下面
doIt
传递数组引用的副本,不能更改原始引用,也不会对原始数组产生任何影响。