Назад к вопросам
СБЕР
Senior
4
Расскажите про иммутабельные объекты в Java — зачем нужны, как создать?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Иммутабельные объекты в Java — это объекты, состояние которых нельзя изменить после создания. Они важны для обеспечения безопасности потоков (thread-safety), упрощения отладки и предотвращения ошибок, связанных с изменением состояния.
Чтобы создать иммутабельный объект, нужно:
- Сделать класс final, чтобы нельзя было его наследовать и изменить поведение.
- Все поля сделать private и final.
- Не предоставлять сеттеры.
- Инициализировать все поля через конструктор.
- Если поля — ссылки на изменяемые объекты, создавать их копии при передаче и при возврате (защищать от внешних изменений).
Пример:
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Такой объект нельзя изменить после создания, что делает его безопасным для использования в многопоточной среде.