equals和“==”

时间:2022-08-18 17:23:50

Integer a = new Integer("3");
Integer b = new Integer(3);
System.out.println(a==b);
System.out.println(a.equals(b));

在堆内存中new了两个不同的对象,可以将这两个对象看做是两个空间,两个空间有两个不同的地址值标记。

a、b中记录的就是这两个地址值;“==”比较的就是地址值,所以“a==b”不成立。

a和b叫做引用变量,是Integer类型的。。

要比较两个对象是否相等,必须通过比较这两个对象内容(属性)是不是相等的;这就要用到从Object中继承的equals方法。

当用到equals方法时,分两种情况:一是比较的对象是API中已经定义的类的类型;二是API中没有,二是自己定义的,比如定义猫、狗等类。

当是第一种情况,可以直接比较两个对象的内容是否相等;当是第二种情况,需要自己重写从Object继承下来的equals方法,例如自定义的猫类,必须在equals定义两个猫(对象)相等的条件,例如身高,体重相等,就说这两个猫(对象)是相等的。。。。

如果想具体的了解equals和“==”的应用,可以访问链接http://www.jb51.net/article/73949.htm