Java中的方法調(diào)用參數(shù)傳遞有兩種方式:值傳遞和引用傳遞。值傳遞是將方法調(diào)用時(shí)傳遞的參數(shù)值賦值給新的變量,而引用傳遞是把實(shí)際參數(shù)的引用(內(nèi)存地址)復(fù)制一份傳遞給方法參數(shù)。
// 在Java中定義一個(gè)方法 public void swap(int a, int b) { int temp = a; a = b; b = temp; } // 在主方法中調(diào)用swap方法,并打印結(jié)果 int a = 10; int b = 20; swap(a, b); System.out.println("a = " + a + ", b = " + b); // 輸出結(jié)果:a = 10, b = 20
在上面的代碼中,交換方法swap中的參數(shù)是按值傳遞的,因此當(dāng)我們執(zhí)行swap(a, b)時(shí)并不會(huì)改變a和b的值。
// 在Java中定義一個(gè)方法 public void change(int[] arr) { arr[0] = 100; } // 在主方法中調(diào)用change方法,并打印結(jié)果 int[] arr = new int[]{1, 2, 3, 4, 5}; change(arr); System.out.println(Arrays.toString(arr)); // 輸出結(jié)果:[100, 2, 3, 4, 5]
在上面的代碼中,修改方法change中的參數(shù)是按引用傳遞的,因此當(dāng)我們執(zhí)行change(arr)時(shí)會(huì)改變arr的值,即將第一個(gè)元素改為100。