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

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

Apr 08, 2019 pm 01:43 PM
java傳遞方式

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。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具