不用a.equals(b)判断对象相等原因是什么
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"不用a.equals(b)判断对象相等原因是什么",在日常操作中,相信很多人在不用a.equals(b)判断对象相等原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年02月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("") → 返回 true
Objects.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安全错误
数据库的锁怎样保障安全
数据库管理哪些方面
米神的服务器叫什么
海力士服务器内存四代
质量安全远程视频大数据库
鞍山太阳线软件开发设计
方舟web服务器
pb如何连接两个数据库
大学生与网络安全的关系
gbase数据库的理解
服务器和pc机的区别
网络安全继续教育题库答案
网络安全威胁可分为哪两类
资兴手机软件开发
青岛派特全球互联网科技
如何将账号转到另外一个服务器
县网络安全领导小组
2003服务器安全教程
linux提取某几行数据库
数据库 多个表
学软件开发多少学费
闲置的笔记本可以做服务器吗
社会个人隐私工程数据库
福山区安卓软件开发外包公司
用自己的电脑当服务器
邯郸安卓软件开发哪家便宜
五家渠精益管理软件开发
服务器配置管理试卷
石家庄河北网络技术有限公司
分离数据库视频
文献管理软件开发