Junior — Middle
63
Какие преимущества и недостатки есть у использования неизменяемых классов?
Answer from AI
sobes.tech AI
Неизменяемые классы (immutable classes) — это классы, объекты которых нельзя изменить после создания.
Преимущества:
- Потокобезопасность: объекты можно безопасно использовать в многопоточной среде без синхронизации.
- Простота понимания: состояние объекта фиксировано, что упрощает отладку и тестирование.
- Использование в качестве ключей: неизменяемые объекты подходят для использования в хэш-таблицах и других коллекциях.
- Предотвращение ошибок: исключается возможность случайного изменения состояния объекта.
Недостатки:
- Производительность: при необходимости изменить объект приходится создавать новый, что может привести к дополнительным затратам памяти и времени.
- Гибкость: сложнее реализовать объекты с изменяемым состоянием, например, кэш или счетчики.
Пример неизменяемого класса в 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;
}
}