今天遇到一个问题,越想越想不明白,贴出来请大家帮帮忙
ObLocateMain main = new ObLocateMain();
List mainList = new ArrayList();
mainList.add(main);
main.setOutboundNo("111111111111");
main = new ObLocateMain();
main.setOutboundNo("222222222222");
mainList.add(main);
mainList.get(0).setOutboundNo("333333333333");
System.out.println("---------------------------------");
上面的代码现在有个问题不能理解
给outboundNO对象赋值后,集合里的main对象应该也有值了(这可以理解)
main = new ObLocateMain(); 之后,按照我的理解集合里的main对象应该也是一个新的new的一个对象,但是实际上集合里对象还是之前的main对象(给outboundNo赋值后的对象)
这是为什么呢,集合归根结底还是维护的数组,我理解的是将main这个引用指向一个新的对象的时候为什么集合里的没有变化呢,集合里main的引用和外面的不是一个吗?