在java的list 中存放的是对象的引用,
比如: User u=new User();
u.setId(1);
u.setUserName("tangwensheng");
List<User> list=new ArrayList<User>();
list.add(u);
list的add(Object obj)的操作就相当于 User u1=u; 然后在把u1存放到数组中
所以list中引用和u的引用是一样, 是同一块内存地址 所以u 修改了内存中的对象的属性值 list中的引用的对象的值也变化了, 但是如果 u=null 跟list中的元素(对象引用)是没有关系的
就好像 再声明了一个对象的引用 User u1=u 的道理是一样的。
比如: User u=new User();
u.setId(1);
u.setUserName("tangwensheng");
List<User> list=new ArrayList<User>();
list.add(u);
list的add(Object obj)的操作就相当于 User u1=u; 然后在把u1存放到数组中
所以list中引用和u的引用是一样, 是同一块内存地址 所以u 修改了内存中的对象的属性值 list中的引用的对象的值也变化了, 但是如果 u=null 跟list中的元素(对象引用)是没有关系的
就好像 再声明了一个对象的引用 User u1=u 的道理是一样的。