所谓有鬼 其实是人们心中有个鬼

让我帮你画个符吧

Java中==与equals()区别【恨你恨到骨头里】

这么长时间了 对Java中==与equals()的区别还不是很明了。今天马上要下班的时候。偶尔翻起了别人的博客 感觉突然有些顿悟了。
下午说说我自己的理解吧

==其实比较的是两个对象的引用。而equals()方法呢 它的标准形式是这样的
public boolean equals(Object obj);

在没有被override的情况下,它和==实现是一致的。

但是他们的区别我像大家也能看出来 就是equals可以被后来者所复写。这样就很灵活了

话不多说 咱们想看看几个程序 toy

public class Example1
{
      public static void main(String[] args)
      {
          String s1=new String("abc");
          String s2=new String("abc");
          System.out.println("用 == 比较结果");
          System.out.println(s1==s2);//false
          System.out.println("用equals(Object) 比较结果");
          System.out.println(s1.equals(s2));//true

      }
}


equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true


终于明白了吧

posted on 2009-07-28 17:18  鬼话符  阅读(192)  评论(0)    收藏  举报

导航