package object;
class Value{
int i;
}
public class E08_StaticTest {
public static void main(String[] args) {
Integer n1= new Integer(47);
Integer n2= new Integer(47);
int n3=12;
int n4=12;
System.out.println(n1==n2);//比较的是对象的引用而非对象的内容
System.out.println(n1!=n2);
System.out.println(n3==n4);
System.out.println(n3!=n4);
System.out.println(n1.equals(n2));
Value n5=new Value();
Value n6=new Value();
n5.i=n6.i=67;
System.out.println(n5.equals(n6));//比较的是对象的引用而非对象的内容
}
} /* Output:
false
true
true
false
true
false
*///:~
在比较基本类型时,如int,double(n3,n4)等用==,!=比较两者之间的大小;但对 new出来的对象(n1,n2)来说,必须使用equals()方法来比较两个对象之间的大小关系。
对于用户自己创建的类(n5,n6),比较大小关系时必须重载equals()方法,这是由于equals()方法的默认行为是比较引用,而非比较对象的内容。
大多数Java类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的引用。