Java Arrays通过引用传递

时间:2014-10-22 06:38:19

标签: java arrays

我想知道为什么输出仍为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    
    }
}

2 个答案:

答案 0 :(得分:1)

doIt传递了数组引用的副本,因此它无法更改原始引用(存储在array变量中)。它只能更改此引用引用的对象的状态。因此,在z内将doIt设置为null会使方法之外没有任何区别。

答案 1 :(得分:1)

下面

doIt传递数组引用的副本,不能更改原始引用,也不会对原始数组产生任何影响。