Какие риски есть при использовании Optional, Stream API и parallelStream?

Риски связаны с неверной семантикой: Optional.get без проверки, побочные эффекты и повторное использование Stream, гонки и блокирующий I/O в parallelStream. Эти инструменты не заменяют понимание выполнения.

Короткий ответ

Что ответить на собеседовании

Риски связаны с неверной семантикой: Optional.get без проверки, побочные эффекты и повторное использование Stream, гонки и блокирующий I/O в parallelStream. Эти инструменты не заменяют понимание выполнения.

Подробный разбор

Ответ с пояснениями

Риски связаны с неверной семантикой: Optional.get без проверки, побочные эффекты и повторное использование Stream, гонки и блокирующий I/O в parallelStream. Эти инструменты не заменяют понимание выполнения.

У Optional метод orElse вычисляет аргумент заранее, а orElseGet — по необходимости. Stream ленив до terminal operation и обычно одноразовый; изменение источника во время обхода опасно. Для parallelStream нужны ассоциативные операции и безопасная работа с состоянием. Параллельность может стоить дороже последовательного цикла на маленьких данных, поэтому производительность проверяют измерениями.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее