当前位置: 代码迷 >> 综合 >> 每天一道面试题(27)----hashCode()与equals()的相关规定
  详细解决方案

每天一道面试题(27)----hashCode()与equals()的相关规定

热度:39   发布时间:2023-11-21 02:25:09.0

hashCode()与equals()的相关规定:

  1. 如果两个对象相等,则hashCode一定也是相同的
    1. hashCode是JDK根据对象的地址或者字符串以及数字算出来的int类型的数值
  2. 两个对象相等,则他们的equals方法返回true
  3. 两个对象有相同的hashCode值,它们也不一定相等
  4. 因此,equals方法被覆盖重写,则hashCode方法也必须被覆盖重写
  5. hashCode()的默认行为是对堆上的对象产生独特值.如果没有重写hashCode(),则该class的两个对象无论如何都不会相等(即使这两个对象指向相同的数据).

== 与 equals 的区别

  1. == 是判断两个变量或者实例是不是指向同一个内存空间;
  2. equals是判断两个变量或者实例所指向的内存空间的值是不是相同
  相关解决方案