“a==b”和 “a.equals(b)” 有什么区别?
What is the difference between a==b and a.equals(b)?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: easy
分类: System Design
标签: ==, equals, reference, logical equality
参考答案摘要
答案 如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,所以通常需要重写该方法来提供逻辑一致性的比较。例如,String 类重写 equals() 方法,所以可以用于两个不同对象,但是包含的字母相同的比较。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。