Встречается на собеседованиях • сегодня
Чем обеспечивается иммутабельность
Иммутабельность в Java обеспечивается следующими способами:
1. **Final класс и поля** – класс объявляется `final`, чтобы предотвратить наследование, а поля `final`, чтобы запретить их изменение после инициализации.
2. **Отсутствие сеттеров** – не предоставляются методы для изменения состояния объекта.
3. **Защитное копирование** – если объект содержит mutable-поля, при их возврате или передаче создаются копии.
Пример:
```java
public final class ImmutablePerson {
private final String name;
private final List hobbies;
public ImmutablePerson(String name, List hobbies) {
this.name = name;
this.hobbies = new ArrayList<>(hobbies); // защитное копирование
}
public List getHobbies() {
return new ArrayList<>(hobbies); // возвращаем копию
}
}
```
Также иммутабельность поддерживается неизменяемыми коллекциями из `Collections.unmodifiableList()` и классами вроде `String`, `LocalDate`.

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