当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

equals(Object) 与 == 的辨别[Java编程]

赞助商链接



  本文“equals(Object) 与 == 的辨别[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在对比对象时刻,常常用到"=="和"equals(Object)".它们常常让初学者感到迷惑.下面先看一个例子

publicclassExample1
{
   publicstaticvoidmain(String[]args)
   {
     Strings1=newString("abc");
     Strings2=newString("abc");
     //s1=s2;
     System.out.println("用==对比后果");
     System.out.println(s1==s2);//false
   }
}

既然两个String对象内容同为"abc"为什么先打出false呢.那是由于"=="对比的是两个对象的引用(references),并非他们的内容,怎么才能对比内容能否相等呢?去掉s1=s2一句的注释符后果就差别了,因为他们的引用相同了.

我们要利用equals(Object)办法,由于equals(Object)办法为Object类中定义的办法,所用按照默许方法定义过的类均是其子类.也就是说Object类为全部类的超类(superclass,也叫父类、基类等),在Object中的equals(Object)办法其尺度情势为

publicbooleanequals(Objectobj)

返回范例为boolean,即true/false与"=="返回范例一样.Object类中定义的equals(Object)办法是直接利用"=="对比的两个对象,所以在没有覆盖(override,或称改写、重写)equals(Object)办法的情形下,equals(Object)与"=="一样是对比的引用.以下例(后果在注释中):

publicclassExample4
{
   publicstaticvoidmain(String[]args)
   {
     Example4e=newExample4();
     Example4e4=newExample4();
     System.out.println("用equals(Object)对比后果");
     System.out.println(e.equals(e4)); //后果为false
     System.out.println("用==对比后果");
     System.out.println(e==e4);     //后果为false
   }
}

equals(Object)办法与"=="相比的特别之处就在于它可以覆盖,所以我们可以通过覆盖的办法让它不是对比引用而是对比数据内容.当然JDK中也有覆盖过equals(Object)办法的类,如java.lang.String,它就覆盖了从Object担当来的的equals(Object)办法,用以对比字符串内容能否相同.看看下面这个例子:

publicclassExample1
{
   publicstaticvoidmain(String[]args)
   {
     Strings1=newString("abc");
     Strings2=newString("abc");
     System.out.println("用==对比后果");
     System.out.println(s1==s2);//false
     System.out.println("用equals(Object)对比后果");
     System.out.println(s1.equals(s2));//true
   }
}

例顶用equals(Object)对比后果为true.用==对比后果为false.String.equals(Object)办法直接对比了两个字符串的内容,假如相同则返回true,不然返回false.你可以尝试把此中一个"abc"改成"abcde",看看后果有何改变.


  以上是“equals(Object) 与 == 的辨别[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>深化equals办法对象相等比较</b>
  • Java:重写equals()和hashCode()
  • Java:全部的equals办法实现都是错误的?
  • equals与"=="操作符的比较
  • 如安在Java中避免equals办法的躲藏陷阱
  • equals(Object) 与 == 的辨别
  • Java中Object类的equals()和hashCode()办法深化解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .