Встречается на собеседованиях • сегодня

Какие плюсы и минусы иммутабельных объектов

Плюсы:

  • Потокобезопасность: не требуют синхронизации, так как состояние не меняется
  • Простота тестирования: отсутствуют побочные эффекты
  • Надёжность: гарантированно корректное состояние после создания
  • Подходят для ключей в HashMap (hashCode не меняется)
  • Легко кешировать и повторно использовать

Минусы:

  • Избыточное создание объектов при изменениях (может влиять на производительность)
  • Не всегда удобны для сложных изменений состояния
  • Требуют больше кода для создания (билдеры, фабрики)

Пример:

java
public final class ImmutablePoint {
    private final int x;
    private final int y;
    
    public ImmutablePoint(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
    // Методы только для чтения
    public int getX() { return x; }
    public int getY() { return y; }
    
    // "Изменение" через создание нового объекта
    public ImmutablePoint withX(int newX) {
        return new ImmutablePoint(newX, this.y);
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы