public class TestTransfer {
//定义一个swap方法
public static void swap(int a , int b){
/*
参数列表中的int a 和int b 与主方法中的不同 注意:变量的作用范围 只在其声明语句所在的{}中有效
*/
int tmp = a; //在内存中开辟一块名字为tem,类型为int的地址空间,
//找到内存地址名字为a的地址空间,复制其值到临时空间,将这个值写入tem
a = b; //在内存中找到名字为a的地址空间和名字为b的地址空间,
//将名字为b的地址空间的值复制到临时空间,然后写入a,a之前的值被覆盖掉
b = tmp; //在内存中找到名字为b和名字为tmp的地址空间,复制tmp中的值到临时空间,
//然后写入b,b之前的值被覆盖掉。
//这样就实现了 a b 的值互换
System.out.println("swap方法里,a的值是" + a + ";b的值是" + b); // 9,6
}
public static void main(String[] args) {
int a = 6; //在内存中开辟一块名字为a类型为int的地址空间,并将6写入(初始化赋值)
int b = 9; //在内存中开辟一块名字为b类型为int的地址空间,并将9写入(初始化赋值)
swap(a , b); //调用swap方法 并将 a,b传入 因为是值进行传递,传递的是copy
//找见名字为a和名字为b的地址空间,并将其中的值复制到临时空间,然后传递给swap函数
//因为传参传的是copy版本,所以其实a,b的值没有改变
System.out.println("交换结束后,变量a的值是" + a + ";变量b的值是" + b); //6,9
}
}