为什么高级程序员都不用a.equals(b)判断对象相等?

2022-09-22 09:19:56

点赞再看,养成好习惯

哈喽,大家好,我是一条。

今天也是向高级程序员学习的一天。组长又说了我用a.equals(b)判断对象相等的问题,一开始我还很奇怪,不都这么用吗

组长:“……”

嗷嗷,原来是这样,那该用什么呢?

组长:“……”

别急,这就把组长讲的教给大家。

"a.equals(b)"和"a==b"

a.equals(b)是jdk1.7的方法。面试常考的是和“==”的区别:

如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true。

而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致性的比较。

但到了实际开发,情况就复杂的多了,比如Null和空字符串的区别

1.值是Null

1.a.equals(b), a 是null, 抛出NullPointException异常。

2.a.equals(b), a不是null, b是null,  返回false。不会抛出空指针异常。

3.Object.equals(a,b)比较时, 若a 和 b 都是null, 则返回 t

  • 作者:一条coding
  • 原文链接:https://blog.csdn.net/skylibiao/article/details/117400786
    更新时间:2022-09-22 09:19:56