Sobes.tech
Назад к вопросам
Junior — Middle
63

Можете объяснить, что означает термин 'иммутабельный объект' и в чем его ключевые особенности?

Компании, где спрашивали
Банк РоссияБанк Россия
IT OneIT One
ОТП БанкОТП Банк

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

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 его имя и возраст нельзя изменить.