如果把m的初始化写在循环的外层,当执行m.set的时候,list里面的值就会改变
因为 ArrayList里面存储的不是值,而是对象的地址
当对象改变,ArrayList里面的所指向的对象也会改变。
把new Object写在循环里就会解决这个问题。
之前图着不浪费内存的原则把new写在外面,之后再覆盖,但是没想到ArrayList存的是地址,如果是这样那也代表着循环退出后只要list不析构,这些临时对象就一直存在,堆内存就一直存着数据
长记性了

如果把m的初始化写在循环的外层,当执行m.set的时候,list里面的值就会改变
因为 ArrayList里面存储的不是值,而是对象的地址
当对象改变,ArrayList里面的所指向的对象也会改变。
把new Object写在循环里就会解决这个问题。
之前图着不浪费内存的原则把new写在外面,之后再覆盖,但是没想到ArrayList存的是地址,如果是这样那也代表着循环退出后只要list不析构,这些临时对象就一直存在,堆内存就一直存着数据
长记性了