Back to questions
Банк Россия
IT One
ОТП Банк
Junior — Middle
62
Можете объяснить, что означает термин 'иммутабельный объект' и в чем его ключевые особенности?
Companies where asked
Answer from AI
sobes.tech AI
Иммутабельный объект — это объект, состояние которого нельзя изменить после создания.
Ключевые особенности:
- Все поля объекта объявлены как final и инициализируются только в конструкторе.
- Нет методов, которые изменяют внутреннее состояние объекта (нет сеттеров).
- Если объект содержит ссылки на изменяемые объекты, они копируются при создании (глубокое копирование) или возвращаются копии, чтобы избежать изменения внутреннего состояния.
Преимущества:
- Потокобезопасность без дополнительной синхронизации.
- Простота понимания и отладки.
Пример иммутабельного класса в Java:
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;
}
}
После создания объекта Person его имя и возраст нельзя изменить.