總結——基本數據類型傳值,引用類型傳地址
在Java語言中,不管參數的類型是引用類型還是基本數據類型,數據參數和形式參數進行值傳遞的方式只有一種——參數值的值 復制一份 賦值給形式參數
所以,實參的值,其實就有兩份,調用方法中一份,被調用方法中一份
1、當方法的參數是基本數據類型的參數時,參數有兩份,同時參數對應的數據的值也有兩份
2、當方法的參數是引用類型時,參數值有兩份,但是兩個數組類型引用變量,對應的值(數組),只有一個
public class Demo1 {
public static void main(String[] args) {
//int a = 10;
//int b = 20;
//System.out.println("a:" + a + ",b:" + b);
//change(a, b);
//System.out.println("a:" + a + ",b:" + b);
//--------------------------------------------------------------------
int[] arr = {1, 2, 3, 4, 5};
change(arr);
System.out.println(arr[1]);
}
public static void change(int a, int b) {
System.out.println("change a:" + a + ",b:" + b);
a = b; // a = b
b = a + b; //b = b + b = 2b
System.out.println("change a:" + a + ",b:" + b);
}
public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}
}