引用数据变量的赋值和值传递
关于变量的赋值
-
基本数据类型,变量保存的是数据值。
-
引用数据类型,变量保存的是数据的地址。
public class ValueTransferTest{ public static void main(String[] args){ Order o1 = new Order(); o1.orderId = 1001; Order o2 = o1; //o1和o2地址相同 //输出结果为:o1=1001,o2=1001 o2.orderId = 1002; //输出结果为:o1=1002,o2=1002 } }
引用数据类型的值传递
通常在一个方法调用另一个方法来交换两个值的时候,都会使用 return
或在方法中直接输出交换结果。否则,在方法执行结束后就会销毁,无法达到换值的效果。
可以尝试下面这样👇
class Data{
int m = 10;
int n = 20;
}
public static void main(String[] args){
Data data = new Data();
v.swap(data);
}
swap(Data data){
int temp = data.m;
data.m = data.n;
data.n = temp;
}
//这样即使方法执行完毕,堆中的值已经交换完毕。
同理,数组也可以这样换值。
public void swap(int[] arr,int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}