Java中的傳值和傳引用是編程中非常重要的概念。簡而言之,傳值是將變量的值復制一份傳遞給函數或方法,在函數或方法內對這份復制出來的值所做的改動不會影響原始變量的值;傳引用則是將變量的引用傳遞給函數或方法,這樣在函數或方法內對變量所做的改動會直接影響到原始變量。
// 傳值的例子 public static void changeValue(int x) { x = 10; System.out.println("x的值為:" + x); } public static void main(String[] args) { int x = 5; changeValue(x); System.out.println("x的值為:" + x); } // 輸出結果 // x的值為:10 // x的值為:5
在這個例子中,我們定義了一個changeValue方法,該方法接收一個整型參數x。在main方法中,我們定義了一個整型變量x并賦值為5,然后將x傳遞給changeValue方法。在changeValue方法中,我們將傳遞進來的參數x的值改為了10,并在方法中輸出,此時x的值為10。但當我們再次在main方法中輸出x的值時,它的值依然是5,因為changeValue方法只是對x的值進行復制,并沒有真正改變x的值。
// 傳引用的例子 public static void changeArray(int[] arr) { arr[0] = 10; System.out.println("arr[0]的值為:" + arr[0]); } public static void main(String[] args) { int[] arr = {5, 8}; changeArray(arr); System.out.println("arr[0]的值為:" + arr[0]); } // 輸出結果 // arr[0]的值為:10 // arr[0]的值為:10
在這個例子中,我們定義了一個changeArray方法,該方法接收一個整型數組參數arr。在main方法中,我們定義了一個整型數組arr,其第一個元素的值為5。然后將arr傳遞給changeArray方法。在changeArray方法中,我們將參數arr的第一個元素改為了10,并在方法中輸出,此時arr的第一個元素的值就是10。但當我們再次在main方法中輸出arr的第一個元素時,它的值也是10,因為changeArray方法對arr的改動直接影響到了原始變量。