public class Test {
public static void main(String[] args) {
Integer n1 = new Integer(1);
Integer n2 = new Integer(1);
System.out.println(n1 == n2);
System.out.println(n1.equals(n2));
}
}
// output
false
true
尽管两个Integer对象的内容相同,然而对象的引用却是不同的,而==比较的是对象的引用,equals比较的是对象的内容。
equals()的默认行为是比较对象的引用,所以在自己写的类中用到equals()时应该覆盖equals()。
大多数Java类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的引用。