==和equals

 

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()方法,以便用来比较对象的内容,而非比较对象的引用。

你可能感兴趣的:(equals,==)