一尘不染

在java中==和equals的区别?

java equals ==

在java中==和equals的区别?


阅读 452

收藏
2020-01-07

共1个答案

一尘不染

  • .equals(…) 只会比较所写的内容进行比较,不会多也不会少。
  • 如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。
  • 如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API,这与==; 也就是说,当且仅当两个变量都引用相同的对象且引用相同且相同时,它才返回true 。因此,你将测试对象相等性而不是功能相等性。
  • hashCode如果你要进行覆盖,请务必记住覆盖,equals以免“违反合同”。根据API,如果hashCode()两个对象的方法显示等效,则从方法返回的结果必须相同equals。反过来并不一定是真的。
2020-01-08