黑马程序员技术交流社区
标题:
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