首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试官:为什么不建议用 equals 判断对象相等

null.equals("abc") → 抛出 NullPointerException 异常 "abc".equals(null) → 返回 false null.equals(null..."abc".equals("") → 返回 false "".equals("abc") → 返回 false "".equals("") → 返回 true Objects.equals...= null && a.equals(b)); } 2.说明 首先,进行了对象地址的判断,如果是真,则不再继续判断。...如果不相等,后面的表达式的意思是,先判断a不为空,然后根据上面的知识点,就不会再出现空指针。 所以,如果都是null,在第一个判断上就为true了。...如果不为空,地址不同,就重要的是判断a.equals(b)。 另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。

29530

js中的相等与不相等

在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则: 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false 转换为0,而 true 转换为1; 如果一个操作数是字符串,另一个操作数是数值...,在比较相等性之前先将字符串转换为数值; 如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类 型值按照前面的规则进行比较; null 和undefined 是相等的...要比较相等性之前,不能将null 和undefined 转换成其他任何值。 如果有一个操作数是NaN,则相等操作符返回false,而不相等操作符返回true。...重要提示: 即使两个操作数都是NaN,相等操作符也返回false;因为按照规则,NaN 不等于NaN。 如果两个操作数都是对象,则比较它们是不是同一个对象。...如果两个操作数都指向同一个对象, 则相等操作符返回true;否则,返回false。

1.8K51

JavaScript 中的相等判断

("triple equals" 或 "identity"),使用 === , 宽松相等 ("double equals") ,使用 == 以及 Object.is (ECMAScript 2015/...== x) 成立的唯一情况是 x 的值为 NaN) 非严格相等 == 相等操作符比较两个值是否相等,在比较前将两个被比较的值转换为相同类型。...不可变属性和新设定的值使用 same-value 相等比较。 同值相等由 Object.is 方法提供。 零值相等 与同值相等类似,不过会认为 +0 与 -0 相等。...规范中的相等、严格相等以及同值相等 在 ES5 中, == 相等在 Section 11.9.3, The Abstract Equality Algorithm; === 相等在 11.9.6, The...提示:请先阅读严格相等的算法)ES5 也提供了 same-value 相等, Section 9.12, The SameValue Algorithm ,用在 JS 引擎内部。

93410
领券