Java函数传递,不是除了基本类型以外就是引用吗,这里的引用更像C++里的指针 为什么会有下面这个情况?public class Demo5{
public static void swap(P a,P b){//交换指向
P tmp=null;
tmp=a;
a=b;
b=tmp;
}
public static void fun(P a){//改变var
a.var=100;
}
public static void main(String[] args){
P a=new P(1);
P b=new P(2);
System.out.println("a="+a.var);
System.out.println("b="+b.var);
swap(a,b);
System.out.println("a="+a.var);
System.out.println("b="+b.var);
                //为什么这里没有交换?
fun(a);
System.out.println("a="+a.var);
                //这里的值却改变了?
}
}
class P{
public int var;
public P(int var){
this.var=var;
}
}