请记住,创建对象时,变量会存储对对象的引用。
因此,当使用相等测试运算符(==)比较对象时,它实际上比较的是引用,而不是对象值。
例子:
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,因为我们有两个不同的对象(两个不同的引用或内存位置)。