public class ListAddTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
List<String[]> list1 = new ArrayList<String[]>();
String str = "";
String [] strs = new String[1];
for(int i = 0; i < 3; i++){
str = "" + i;
strs[0] = "" + i;
list.add(str);
list1.add(strs);
}
for(int i = 0; i < 3; i++) {
System.out.println( list.get(i));
}
System.out.println();
for(int i = 0; i < 3; i++) {
System.out.println( list1.get(i)[0]);
}
System.out.println();
System.out.println(list.get(2)==list1.get(2)[0]);
}
}
的输出为:
0
1
2
2
2
2
false
String也是引用类型,但是list添加String[]的时候就是对象的引用,而添加String的时候就是对象的拷贝,为什么呢?