首頁 >类库下载 >java类库 >java方法參數的兩種傳遞方式

java方法參數的兩種傳遞方式

little bottle
little bottle轉載
2019-04-08 13:43:206316瀏覽

java的方法參數傳遞方式有兩種,以值傳遞和引用傳遞。

1.以值傳遞

參數型別是int,long等基本資料型別(八大基本資料型別),參數傳遞的過程採用值拷貝的方式





#參數類型為參考類型,參數傳遞的過程採用拷貝參考的方式

程式碼片段2:

public class Test {

    public static void main(String[] args) {
        int a = 5;
        fun(a);
        System.out.println(a);// 输出结果为5
    }

    private static void fun(int a) {
        a += 1;
    }
}

結論:按值傳遞,不會改變原來的值,引用傳遞,會改變引用物件的值

##再看下面這種情況:程式碼片段3:

public class Test {

    public static void main(String[] args) {
        A a = new A(5);
        fun(a);
        System.out.println(a.a);// 输出结果为6
    }

    private static void fun(A a) {
        a.a += 1;
    }

    static class A {
        public int a;

        public A(int a) {
            this.a = a;
        }
    }
}
這裡明明是引用傳遞,為什麼沒有改變物件的值呢?

這裡其實是使用了基本資料型別封裝類別的自動裝箱功能。

Integer a = 5,編譯後實際為Integer a = Integer.valueOf(5),檢視Integer的原始碼,並沒有改變原始物件的值,只是將其引用指向了另一個物件。


####################### #######程式碼片段3中的過程可以用下圖來表示:########################直接改變了堆疊幀中的地址,指向另一個對象,所以並沒有改變原來的值。 ######【推薦課程:###Java影片教學###】  #############

以上是java方法參數的兩種傳遞方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除