Встречается на собеседованиях • сегодня

Меняется ли hashCode у иммутабельных объектов

Нет, у иммутабельных объектов hashCode не меняется, так как их состояние (поля) после создания остаётся неизменным. Это ключевое требование контракта hashCode(): если объекты равны по equals(), их hashCode() должен быть одинаковым. Иммутабельность гарантирует это.

Пример:

java
String s1 = "Java";
int hash1 = s1.hashCode(); // допустим, 2301506
String s2 = s1.toUpperCase(); // создаётся новый объект "JAVA"
// s1 остаётся "Java", его hashCode не изменился
System.out.println(s1.hashCode() == hash1); // true

Для корректной работы с HashMap, HashSet и другими коллекциями важно, чтобы hashCode() оставался константным. Иммутабельные объекты идеально подходят для ключей в HashMap.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы