其實傳遞的就是數組的指針,里面的每一項的值還是那塊內存,所以能直接操作里面的值。如果單純傳指定的值,那么里面操作的就是新的一塊內存塊。
用數組實現的效果如下:
class B{ String cnt=null; public static void main(String[] args) { B t=new B();//實例化一個對象 String a=null; String[]s=new String[1]; B b=new B(); Object o=null; t.test1(a); System.out.println("原子類型實現的結果:"+a);//原子類型實現的結果:null t.test2(b); System.out.println("引用類型實現的結果:"+b.cnt);//引用類型實現的結果:bbbbbb t.test3(s); System.out.println("數組類型實現的結果:"+s[0]);//數組類型實現的結果:sssssssss t.test4(o); System.out.println("數組類型實現的結果:"+String.valueOf(o));//數組類型實現的結果:null } public void test1(String a){ a="aaaaaaaa"; } public void test2(B b){ b.cnt="bbbbbb"; } public void test3(String[] s){ s[0]="sssssssss"; } public void test4(Object o){ o="sssssssss"; } }
參考:
http://blog.csdn.net/hemeinvyiqiluoben/article/details/49978313