1.关系操作符==和!=也适用于所有对象。看代码:
public class Equalsasd{
public static void main(String[] args){
Integer n1 = new Integer();
Integer n2 = new Integer();
System.out.println(n1==n2);
System.out.println(n1!=n2);
}
}
//输出:false、true
==和!=比较的是对象的引用,而不是对象的实际内容,如要比较对象的实际内容是否相同,需使用equals().
public class EqualsMethod{
public static void main(String[] args){
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));
}
}
//输出:true
但是,假如你创建了自己的类,例如:
class Value{
int i;
}
public class EqualsMethod2{
public static void main(String[] args){
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
}
//输出:false
这是由于equals()默认行为是比较引用。所以要在自己的新类中覆盖(重写)equals()方法,让它来比较内容,而大多数Java类库都实现了equals()方法,以便来比较对象的内容。所以在自己的类中如要比较内容需要重写equals()方法。