在Java中,傳遞參數有兩種方式:值傳遞和引用傳遞。在值傳遞中,參數的值被復制到一個新的變量中,而在引用傳遞中,參數傳遞的是變量的地址。
下面看一個簡單的示例:
public class Test { public static void main(String[] args) { int a = 10; String b = "hello"; System.out.println("a的值為:" + a); System.out.println("b的值為:" + b); change(a, b); System.out.println("a的值為:" + a); System.out.println("b的值為:" + b); } public static void change(int a, String b) { a = 20; b = "world"; System.out.println("a的值為:" + a); System.out.println("b的值為:" + b); } }
以上代碼輸出:
a的值為:10 b的值為:hello a的值為:20 b的值為:world a的值為:10 b的值為:hello
在change方法中,我們將a的值設為20,將b的值設為"world",然而在main方法中,a的值仍然是10,b的值仍然是"hello"。這是因為,在Java中,對于基本數據類型的參數,傳遞的是值,而不是地址。
對于引用類型的參數,傳遞的是地址。下面看一個示例:
public class Test { public static void main(String[] args) { int[] arr = {1, 2, 3}; System.out.println(Arrays.toString(arr)); change(arr); System.out.println(Arrays.toString(arr)); } public static void change(int[] arr) { for (int i = 0; i< arr.length; i++) { arr[i] *= 2; } System.out.println(Arrays.toString(arr)); } }
以上代碼輸出:
[1, 2, 3] [2, 4, 6] [2, 4, 6]
在change方法中,我們將數組arr中的每個元素都乘以2,結果也輸出了。而在main方法中,調用完change方法后,arr的值也被改變了。
總結來說,Java中的值傳遞和引用傳遞的區別在于傳遞參數的方式不同。對于基本數據類型的參數,傳遞的是值,而對于引用類型的參數,傳遞的是地址。
上一篇php http變量
下一篇css代碼div是什么