java中array,jsonArray,class,Intery,string方法函數中變化

先通過5個案例打印:

<code>class ss{   public ss(){       //案例一       JSONObject j=new JSONObject();       j.put("s",1);       f1(j);       System.out.println(j);       //案例二       ArrayList<integer> a=new ArrayList<>();       a.add(0,1);       f2(a);       System.out.println(a);       //案例三       struct s=new struct();       s.a=1;       f3(s);       System.out.println(s.a);       //案例四       Integer ss=1;       f4(ss);       System.out.println(ss);       //案例五       String str="qwrqwre";       f5(str);       System.out.println(str);   }   public void  f4(Integer a){       a=Integer.valueOf(343);   }   public void f1(JSONObject j){       j.put("s",2);   }   public void f2(ArrayList a){       a.add(0,3);   }   public void f3(struct s){       s.a=33;   }   public void f5(String s){       s="改變";   }}/<integer>/<code>

分別輸出如下:

<code>{"s":2}/<code>
<code>[3, 1]/<code>
<code>33/<code>
<code>1/<code>
<code>qwrqwre/<code>

總結:

Java中,想class,array,hashMap,json在方法參數傳遞時,是按照變量指針傳遞,無論是方法內外對其值改變了,最終都會改變對象的屬性,但是Integer,Long,String這些卻不會。


分享到:


相關文章: