为什么同一个引用可以new 两个Sudent() 为什么同一个stu不会报错

为什么同一个stu可以new 两个Sudent()
stu重复不会报错
Student stu = new Student();
stu.setName("李四");
stu.setAge(20);
list.add(stu);
stu = new Student();
stu.setName("李");
stu.setAge(2);
list.add(stu);

我是这样理解的,stu相当于一个帮助找到对象的代号,new的时候你创建了一个对象,并把代号stu给了它,之后你用不到这个对象了,那这个代号可以给别的对象用,只是你不能通过这个代号找到之前那个对象了,它现在指代另一个对象

嗯,

  • stu是一个实例的声明,也就是你说的引用,他用来存放一个正真实例的地址的。他本身不是实例。
  • 当你把第二个实例地址给他的时候,他会把第一个实例的地址覆盖掉。所以不报错,
  • 比如,你声明了一个变量int a,第一次是a=1;,第二次a=2;,他也是不会报错的。