public class Equivalence{ public static void main(String[] args){ Integer n1 = new Integer(11); Integer n2 = new Integer(11);System.out.println(n1 == n2)}=======================
false;
== 和 != 比较的是对象的引用。所以,输出为false.如果想比较两个对象的实际内容,则采用equals()函数。
public class EqualsMethod{
public static void main(String[] args){
Integer n1 = new Integer(11);
Integer n2 = new Integer(11);
System.out.println(n1.equals(n2));
}
}===========================
true;
但是equals这个方法不适用于基本类型,基本类型的比较采用==和!=然而,对于自己创建的类时,
public class Test3 {
/** * @param args */
public static void main(String[] args) {
// TODO Auto-generated method stub
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 11;
System.out.println(v1.equals(v2));
v1 = v2;
System.out.println(v1.equals(v2));
}
}
class Value{int i;}===========output=========
false;
true;
由于equals方法的默认比较是引用比较,所以除非在类中覆盖equals方法,否则不可能表现出我们希望的行为。
本文探讨了Java中对象比较的两种方式:使用==和equals()函数。重点解释了两者之间的区别,以及在不同场景下如何正确地进行对象比较。
1113

被折叠的 条评论
为什么被折叠?



