数组中对象地址问题
将一个对象存入集合中,改变该对象地址后再传入集合,首个传入对象不改变
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Student s1 = new Student();
s1.setId(01);
students.add(s1);
s1 = new Student();
s1.setId(02);
students.add(s1);
for (Student student : students) {
System.out.println(student);
}
}
debug结果:
集合中存储的是对象的实际地址,引用地址为students
中的[0]
和[1]
,其等价于s1,用于指向真实对象的地址,换言之,数组中存的并不是s1,而是s1指向的实际对象