java 方法呼叫,形參改變,實參是否發生改變

一隻打醬油De篴發表於2018-03-16

今天遇見一個面試題,java基礎的東西。我竟然給忘了。。。寫下來加深一下印象

面試題:

public class Test2 {
    public static void main(String[] args) {
        String a = new String("abc");
        int b = 5;
        int[] c={1,2,3,4};
        changeInt(a,b,c);
        System.out.println(a +"-"+ b +"-"+ Arrays.toString(c));
    }

    public static void changeInt(String a,int b,int[] c) {
        a = "123456";
        b = 10;
        c[0] = 5;
    }
}

請輸出正確結果:

執行結果:

abc-5-[5, 2, 3, 4]

結論是這樣:

實參:如果是基本型別或者String,則實參不會變(傳的是值);

            如果是物件集合或者陣列,則實參會改變(傳的是引用)。

謹記下次不會忘記!!!


相關文章