黑马程序员技术交流社区

标题: equals方法比较的是什么 [打印本页]

作者: qmlovewhr    时间: 2014-9-28 23:17
标题: equals方法比较的是什么
  今天突然想到一个问题,Object类中有一个equals方法,我想知道这个方法比较的是什么东西?

作者: ζ_____________    时间: 2014-9-28 23:38
本帖最后由 ζ_____________ 于 2014-9-28 23:42 编辑

首先 equals是建立在对象引用的基础上的, 也就是说 null对于 equals来说, 它就是一个非法值性质的东西, 所以遇到 null, equals就会返回 false..
为了验证之前的想法.
我们简单的个例子.

例子1:
                Object s1= null;
                Object s2 = null;
                System.out.println(s1.equals(s2));//NullPointerException





例子2:

public class Test
{
        public static void main(String[] args)
        {
                Object s1  = new Test();
                Object s2  = new Test();
                Object s3  = s1;
      System.out.println(s1.equals(s2));    //false
                System.out.println(s1.equals(s3));    //true
        }

}
        class Test
        {
        }



这就能看出来. 在Object中的equals方法比较的是两个对象的地址值.
啊啦~刚学基础啦,只能解释到这啦. 希望有用咯.



作者: 更上一层    时间: 2014-9-29 10:30
这个根据不同类是有不同的,这个坎不同类的equal的写法,如果没有从谢equals方法的话,默认是比较内存地址
作者: a986875894    时间: 2014-9-29 11:16
比较地址值(如果不被复写的情况下)
作者: 唐王潮    时间: 2014-9-29 11:38
对象的引用
作者: clh    时间: 2014-9-29 11:42
其中有借助==这个符号的,比较,在不同的对象中对他进行了重写,所以得看对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2