总结——基本数据类型传值,引用类型传地址
在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;
}
}
}
}