经常面试会问及==和equals的区别:
普通的回答是这样子的:
==操作符是对基本数据类型的比较,而equals方法是对对象类型的比较,==操作符只比较值,而equals方法比较值和对象地址。
这个回答正确吗?
答案是:取决于面试官
比较全面的回答:
equals方法继承自Object父类,Object父类中equals方法实现了对值的比较和对象地址的比较,我们自己可以重写equals方法,实现类对象的比较。但切记hashCode经常是要和equals方法同时重写的,重写hashCode方法的作用在于,集合类中比较两个对象是否相等,还会判断两个对象的hashCode返回值是否相等。举一个特例:System.lang.String类,该类就重写了Object类中的equals方法,因此用equals方法比较连个String对象是否相等时,实际只比较了两个对象的值,而没有比较对象地址。
本文详细解析Java中==与equals方法的区别,包括它们的用途、工作原理及注意事项,特别关注equals方法在String类中的重写,并强调hashCode与equals方法结合使用的重要性。
407

被折叠的 条评论
为什么被折叠?



