java值傳遞的例子
public class Test {
//不能正確調(diào)換值
public static void swap(Integer a,Integer b){
Integer t=a;
a=b;
b=t;
System.out.println("a="+a);
System.out.println("b="+b);
}
public static void main(String[] args) {
Integer a=1;
Integer b=2;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("----------");
swap(a, b);
System.out.println("----------");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
在內(nèi)存中,真實的值放在heap中,變量a,b放在棧中,a,b保存的是值在heap中的地址,當(dāng)調(diào)用swap方法時,形參也是保存在棧中,是新的變量,指向heap中真的值,并沒有修改原先a,b的指向,所以無法交換值。
在內(nèi)存中,真實的值放在heap中,變量a,b放在棧中,a,b保存的是值在heap中的地址,當(dāng)調(diào)用swap方法時,形參也是保存在棧中,是新的變量,指向heap中真的值,并沒有修改原先a,b的指向,所以無法交換值。