- public static void main(String[] args) {
- //看这里,在这里new出一个Data对象
- Data data = new Data();
-
- ArrayList<Data> list = new ArrayList<Data>();
- for (int i = 100; i < 103; i++) {
- //在这里每一次操作的都是上面的这个对象,val的值被重写的三次,有效值是最后一次的值
- data.val= i;
- //在这里把Data对象添加进list,虽然添加了三次,但每一次添加的都是相同的地址,都是指向同一个对象
- list.add(data);
- }
- //就是说虽然这个list中有三个地址,但都是一个东西,遍历的时候循环了三次,都是一个对象
- for (Data d : list) {
- System.out.println(d.val);
- }
- }
- }
- class Data {
- int val;
- }
复制代码
给你加上了注释,能力有限,只总结了这么多 |