先看下面一段代碼:
class Main {
public static void swap(Integer i, Integer j) {
Integer temp = new Integer(i);
i = j;
j = temp;
}
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);
}
}
其運(yùn)行結(jié)果為
i.x = 10,j.x = 20
在java中參數(shù)通過值傳遞,所以x傳到函數(shù)中不會影響原來的值
下面一段代碼:
class intWrap {
int x;
}
public class Main {
public static void main(String[] args) {
intWrap i = new intWrap();
i.x = 10;
intWrap j = new intWrap();
j.x = 20;
swap(i, j);
System.out.println("i.x = " + i.x + ", j.x = " + j.x);
}
public static void swap(intWrap i, intWrap j) {
int temp = i.x;
i.x = j.x;
j.x = temp;
}
}
在 Java 應(yīng)用程序中永遠(yuǎn)不會傳遞對象,而只傳遞對象引用。因此是按引用傳遞對象。