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

Какие плюсы и минусы неизменяемого класса

Плюсы:

  • Потокобезопасность: отсутствие изменяемого состояния исключает гонки данных.
  • Простота: легче тестировать, отлаживать и рассуждать о коде.
  • Безопасность: можно свободно передавать объекты без риска их модификации.
  • Кеширование: можно кешировать хеш-код и другие вычисляемые значения.

Минусы:

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

Пример:

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
интервью вопросы и ответы