本帖最后由 罗雪梅 于 2012-10-12 17:34 编辑
public static void main(String argv[]) {
Data data = new Data();
ArrayList list = new ArrayList();
for (int i=100; i<103; i++) {
data.setVal(i);
list.add(data);
}
int j = 0;
while (j < list.size()) {
Data tmp = (Data )list.get(j);
System.out.println("list(" + j + ") = " + tmp.getVal());
j++;
}
}
打印结果是 list(0)=102 list(1)=102 list(2)=102 分析过程: 因为list集合中存储了3个元素,这三个元素是同一个对象。 集合中存储的是对象的引用。这三个应用都指向了同一个对象。
我知道肯定不是100,101,102,但这个分析过程还是看不明白,能给说细点吗谢谢
|