public class Test {
HashMap<Integer, String> names = new HashMap<Integer, String>();
private static User user = new User("aa");
public static void main(String[] args) {
User userB = user;
User userC = new User("bb");
//user.setName("new_aa");
user = userC;
System.out.println(userB.name);
}
}
class User {
String name;
User(String _name) {
name = _name;
}
public void setName(String _name){
name = _name;
}
}
引用的指针只是起着一个指示的作用。指针不能指向另外一个指针,它们只能指向一个内存空间。
看上面的demo,User userB = user;指代的是userB指向new User("aa")这个对象,而代码后面
user = userC代表user指向了new User("bb");而对userB而言,它还是一直指向new User("aa");
因而最后System.out的结果还是“aa”