對於參數傳遞來講,傳送的都是變量的值。對於基本類型來講,傳送的是變量的數值(常規的值傳遞);對於引用類型來講,傳送的是引用類型變量中所保存的地址(指向所引用的對象)。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