请记住,创建对象时,变量会存储对对象的引用。
因此,当使用相等测试运算符(==)比较对象时,它实际上比较的是引用,而不是对象值。
例子:
class Animal {
String name;
Animal(String n) {
name = n;
}
}
class MyClass {
public static void main(String[ ] args) {
Animal a1 = new Animal("Robby");
Animal a2 = new Animal("Robby");
System.out.println(a1 == a2);
}
}
//输出 false
尽管有两个同名的对象,但是相等性测试返回false,因为我们有两个不同的对象(两个不同的引用或内存位置)。