不用a.equals(b)判断对象相等原因是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"不用a.equals(b)判断对象相等原因是什么",在日常操作中,相信很多人在不用a.equals(b)判断对象相等原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2026年11月01日不用a.equals(b)判断对象相等原因是什么
这篇文章主要介绍"不用a.equals(b)判断对象相等原因是什么",在日常操作中,相信很多人在不用a.equals(b)判断对象相等原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"不用a.equals(b)判断对象相等原因是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一:值是null的情况
a.equals(b), a 是null, 抛出NullPointException异常。
a.equals(b), a不是null, b是null, 返回false
Objects.equals(a, b)比较时, 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是null, 则返回false。注意:不会抛出空指针异常。
null.equals("abc") → 抛出 NullPointerException 异常"abc".equals(null) → 返回 falsenull.equals(null) → 抛出 NullPointerException 异常Objects.equals(null, "abc") → 返回 falseObjects.equals("abc",null) → 返回 falseObjects.equals(null, null) → 返回 true二:值是空字符串的情况
a 和 b 如果都是空值字符串:"", 则 a.equals(b), 返回的值是true, 如果a和b其中有一个不是空值字符串,则返回false;
这种情况下 Objects.equals 与情况1 行为一致。
"abc".equals("") → 返回 false"".equals("abc") → 返回 false"".equals("") → 返回 trueObjects.equals("abc", "") → 返回 falseObjects.equals("","abc") → 返回 falseObjects.equals("","") → 返回 true三:源码分析
1.源码.
public final class Objects {private Objects() {throw new AssertionError("No java.util.Objects instances for you!"); } /** * Returns {@code true} if the arguments are equal to each other * and {@code false} otherwise. * Consequently, if both arguments are {@code null}, {@code true} * is returned and if exactly one argument is {@code null}, {@code * false} is returned. Otherwise, equality is determined by using * the {@link Object#equals equals} method of the first * argument. * * @param a an object * @param b an object to be compared with {@code a} for equality * @return {@code true} if the arguments are equal to each other * and {@code false} otherwise * @see Object#equals(Object) */public static boolean equals(Object a, Object b) {return (a == b) || (a != null && a.equals(b)); }...}2.说明
首先,进行了对象地址的判断,如果是真,则不再继续判断。
如果不相等,后面的表达式的意思是,先判断a不为空,然后根据上面的知识点,就不会再出现空指针。
所以,如果都是null,在第一个判断上就为true了。如果不为空,地址不同,就重要的是判断a.equals(b)。
到此,关于"不用a.equals(b)判断对象相等原因是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
对象
不用
原因
情况
学习
地址
字符
字符串
指针
更多
源码
知识
帮助
不同
实用
重要
一致
接下来
意思
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网公司装修
互联网科技的
北京互联网科技有限公司
互联网科技股票
互联网科技的英文
成都互联网科技公司
猫创互联网科技
互联网科技有限公司 翻译
欧洲十大科技互联网公司
浙江互联网科技研学营
华夏互联网科技业
米聚互联网科技南京有限公司排面
广西互联网科技孵化中心
互联网科技的全部知识
高科技互联网发展前景如何
中科明德北京互联网科技
上海同邻互联网科技有限公司规模
互联网科技企业商标注意事项
山东蛋芒互联网科技有限公司
平安好医生打造互联网科技医疗
哈尔滨大商圈互联网科技有限公司
美国互联网保险保险科技
互联网巨头科技公司
互联网科技公司招聘
互联网和黑科技的看法
深圳市优智互联网科技有限公司
中国互联网公司排名锤子科技
科技互联网的核心竞争力
半导体行业属于互联网高科技类吗
武汉亿视互联网科技有限公司