java引用问题
看代码
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.arrayTest();
}
public void arrayTest() {
Object[] os = new Object[10];
os[0] = new Person("A");
Person per1 = (Person) os[0];
Person per2 = (Person) os[0];
Person per3 = per1;
per1.setName("B");
per1 = null;
os[0] = null;
System.out.println(per1);
System.out.println(per2);
System.out.println(per3);
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
}
为什么打印结果为
null
B
B