Встречается на собеседованиях • сегодня
Меняется ли 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.

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