对于参数传递来讲,传送的都是变量的值。对于基本类型来讲,传送的是变量的数值(常规的值传递);对于引用类型来讲,传送的是引用类型变量中所保存的地址(指向所引用的对象)。spa
1 public class test { 2 public int value = 0; 3 public static void main(String [] args){ 4 test a1 = new test(); 5 test a2 = new test(); 6 change (a1,a2); 7 System.out.println("a1.value="+ a1.value); 8 System.out.println("a2.value="+a2.value); 9 10 } 11 public static void change(test test1,test test2){ 12 test1.value = 2; 13 test2 = new test(); 14 test2.value = 3; 15 } 16 }
结果a1.value = 2;code
a2.value = 0;对象
main()调用chane方法后,a1将所引用的对象的地址传送给test1,此时,test1指向与a1相同的对象;a2将所引用的对象的地址传送给test2,此时,test2指向与a2相同的对象blog
当test2引用新的test实例时,test2指向新的对象,与a2再也不指向同一个对象,对test2的操做也再也不影响a2.class