Sobes.tech
Back to questions
Senior
5

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

Companies where asked
Т-БанкТ-Банк

Answer from AI

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; }
}