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 介紹的有內存的變化。內存