既然存放的还是引用,那么涉及到一个问题,也就是说,当改变存放的这个对象实例的原本的值,这个集合内的数据也会改变。
import java.util.ArrayList;
import java.util.List;
public class Test5 {
public static void main(String args[]){
List userList1 = new ArrayList();
List userList2 = new ArrayList();
User user1 = new User();
userList1.add(user1);
userList2.add(user1);
for(User user: userList2){
user.setName("name");
}
for(User user: userList1){
System.out.println(user.getName());
}
}
public static class User{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
就如同JVM内存图中



