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

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

little bottle
發布: 2019-04-08 14:56:18
轉載
6312 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板