Junior — Middle
Wat betekent de onveranderlijkheid van objecten en wat zijn de voordelen en nadelen ervan?
sobes.tech AI
Antwoord van AI
Неизменяемость объектов (immutable objects) означает, что после создания состояние объекта нельзя изменить — все его поля остаются постоянными.
Преимущества:
- Потокобезопасность: объекты можно свободно использовать в многопоточной среде без синхронизации.
- Простота понимания: состояние объекта фиксировано, что уменьшает количество ошибок.
- Удобство кэширования и повторного использования: неизменяемые объекты можно безопасно хранить и передавать.
Недостатки:
- Производительность: при необходимости изменить объект нужно создавать новый, что может привести к дополнительным затратам памяти и времени.
- Гибкость: не всегда удобно, особенно если объект должен часто изменяться.
В Java для создания неизменяемых объектов обычно используют:
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; }
}
Такой объект нельзя изменить после создания.