public class Main {
public static void main(String[] args) {
Integer i = new Integer(10);
Integer j = new Integer(20);
swap(i, j);
System.out.println("i = " + i + ",j = " + j);
}
public static void swap(Integer i, Integer j) {
Integer temp = new Integer(i);
i = j;
j = temp;
}
}
输出
i = 10,j = 20
swap中只是给参数 “i” 和 “j” 赋值了新的引用,没有改变其原引用的对象内容,至于main函数中的 “i” 和 “j” 与 swap 中的 “i” 和 “j” 完全不是一回事。