结论:

不一定相等。

原因:

hashCode 算法有一定概率产生相同的 hashCode,即 hash 碰撞。

分重写 和 未重写 hashcode、equals 方法两种场景:

一、hashcode 方法 和 equals 方法没有重写时

  1. hashcode相等两个类不一定相等
  2. equals返回true的两个类一定相等(为同一个对象)
  3. 两个类相等hashcode不一定相等
  4. 两个类相等equals不一定返回true

二、hashcode 方法和 equals 方法均已按规范重写时

  1. hashcode相等,两个类不一定相等(存在哈希冲突)
  2. equals返回true的两个类一定相等
  3. 两个类相等hashcode一定相等
  4. 两个类相等equals一定返回true