public class A{public int iv;public String sv;public A(){}}public class Test{public static void method1(int iv,String sv,A a){iv+=2;;sv+="change!";a.iv+=2;a.sv+="change!";}public static void main(String[] args){A a=new A();int b=1;String c="123";a.iv=1;a.sv="123"; System.out.format("b=%s c=%s a.iv=%s a.sv=%s \n",b,c,a.iv,a.sv); method1(b,c,a); System.out.format("b=%s c=%s a.iv=%s a.sv=%s \n",b,c,a.iv,a.sv);}}其中 INT STRING都是值传递,而对象a是引用传递 运行看一下结果就知道了因为a 是引用传递的,所以它的值会改变,而值传递的这两个就不会变
|