Методы equals и hashCode являются частью класса Object в Java. Поскольку все классы в Java неявно или явно наследуются от Object, они автоматически получают методы equals и hashCode. Изначально:
equals() сравнивает ссылки на объекты (по сути, this == obj).hashCode() возвращает основанное на адресе значение (обычно нативное).Для корректного сравнения объектов по их содержимому эти методы должны быть переопределены в пользовательских классах.