Встречается на собеседованиях • сегодня
Будет ли одинаковый hashCode у объектов разных классов с одинаковыми значениями полей
Нет, hashCode у объектов разных классов с одинаковыми значениями полей не гарантированно будет одинаковым.
По умолчанию hashCode() в Java генерируется на основе адреса памяти объекта, поэтому разные классы (даже с одинаковыми полями) будут иметь разные hashCode.
Но если классы переопределяют hashCode() одинаково (например, через Objects.hash()), то при одинаковых полях hashCode может совпадать:
java
class A {
int x;
public int hashCode() { return Objects.hash(x); }
}
class B {
int x;
public int hashCode() { return Objects.hash(x); }
}
A a = new A(); a.x = 5;
B b = new B(); b.x = 5;
// a.hashCode() == b.hashCode() -> trueБез переопределения hashCode() объекты будут иметь разные хэши, даже если поля одинаковые.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы