13.什么是值传递和引用传递???
学习:第7遍
1.什么是值传递和引用传递???
基本数据类型是值传递
值传递是指在调用方法时将实际参数复制一份
传到方法中
如果在方法中对参数进行修改
不会影响原来参数
引用数据类型是引用传递
引用传递是指在调用方法时将实际参数的地址
传到方法中
如果在方法中对参数进行修改
原来参数也会改变
public class Test{
public static void main(String[] args) {
/*
* 基本数据类型
*/
int a = 5;
// 将a的值传递给b
int b = a;
b = 8;
System.out.println(a);
System.out.println(b);
/*
* 引用数据类型
*/
int[] c = { 12, 4, 23, 7 };
// 将c的内存地址传递给d,本质上指向同一块内存空间
int[] d = c;
d[0] = 666;
System.out.println(Arrays.toString(c));
System.out.println(Arrays.toString(d));
/*
* 方法传参,与变量赋值是相同的
*/
change(a,c);
System.out.println(a);
System.out.println(Arrays.toString(c));
}
public static void change(int i, int[] array) {
//方法内改变局部变量i,相当于把i=a;a的值不会改变
i = 111;
//改变数组最后一个值,地址给了,c会改变
array[array.length - 1] = 222;
}
}