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

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

Плюсы:

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

Минусы:

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

Пример:

java
// Иммутабельный класс
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
интервью вопросы и ответы