Sobes.tech
Назад к вопросам
Senior
6

Что такое неизменяемый (immutable) класс? Какие у него недостатки?

Компании, где спрашивали
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

Неизменяемый (immutable) класс — это класс, экземпляры которого после создания нельзя изменить. Все поля обычно объявляются как final и инициализируются в конструкторе.

Преимущества:

  • Потокобезопасность без дополнительной синхронизации.
  • Простота понимания и отладки.
  • Использование в качестве ключей в коллекциях.

Недостатки:

  • При изменении объекта нужно создавать новый экземпляр, что может привести к повышенному расходу памяти и снижению производительности.
  • Не всегда удобно для объектов с большим количеством полей или сложной иерархией.

Пример immutable класса на 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; }
}