public class TestPrimitiveTransfer {
public static void swap (int a, int b){
int tmp = a;
a = b;
b = tmp;
}
publicstatic void main(String[] args){
int a = 6;
int b = 9;
swap(a, b);
System.out.println("交换结束后,参a的值是" + a + ": 参b的值是" + b);
}
}
由于传的是基本数据类型,所以swap()函数中参与运算的变量丝毫不影响主函数,函数结束相应变量就释放
如果传入一个引用数据类型就不同了,比如说数组
public class TestPrimitiveTransfer {
public static void swap(int[] arr, int a, int b) {
int tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
public static void main(String[] args) {
int arr[] = { 6, 9 };
int a = 0;
int b = 1;
System.out.println("开始数组的值:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
swap(arr, a, b);
System.out.println("交换结束后的值:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
结果:
开始数组的值:
6
9
交换结束后的值:
9
6
|