java 值傳遞和引用傳遞。

java中 基本類型的參數傳遞是值傳遞,即先後兩個方法的變量不相干,被調方法參數值改變不影響調用方法的傳參數值。java

 引用數據類型的參數傳遞是 傳遞的是參數的地址。即被調方法修改參數值會,調用方法裏會跟着改變。以下:spa

 public static void main(String[] args) {.net

        List<String> list =  new ArrayList<String>();
        list.add("zhangsan");
         for(String l :list){
            System.out.println(l);
        }
        String s = "old";
        System.out.println(s+"--------------------");
        
        processList(list,s);
         for(String l :list){
            System.out.println(l);
        }
        System.out.println(s+"--------------------");
    }
    
     static  void processList(List<String> list,String str) {
        list.add("li si");
        str+="new";
    }

      若是想按照引用傳遞的值,相互不影響呢?方法是在new一個實例就能夠了。code

 public class TempTest {  blog

  private  void test1(A a){  
 a =  new A(); // 新加的一行  
 a.age = 20;  
 System.out.println("test1方法中的age="+a.age);  
 }  
  public  static  void main(String[] args) {  
 TempTest t =  new TempTest();  
 A a =  new A();  
 a.age = 10;  
 t.test1(a);  
 System.out.println(」main方法中的age=」+a.age);  
 }  
}  
class A{  
  public  int age = 0;  

}   詳細能夠參考:http://blog.csdn.net/zzp_403184692/article/details/8184751 介紹的有內存的變化。內存

相關文章
相關標籤/搜索