Вернуться в видеотеку

Реальное собеседование на Senior Java-разработчика

Кандидат отвечает на углублённые вопросы о коллекциях Java, индексах баз данных, Stream API и распределённых системах. Интервьюер уточняет устройство трассировки, гарантии Kafka, блокировки и применение @Transactional.

Источник: Артём Ногин | IT для всех

Открыть на YouTube

Таймлайн

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

Автор проходит реальное техническое интервью на роль Senior Java Developer. Вопросы начинаются с временной сложности HashMap, LinkedList и ArrayList, устройства индексов и порядка полей в составном индексе. Затем кандидат решает задачу по Stream API и разбирает пример из практического опыта. В блоке распределённых систем обсуждаются трассировка запросов, передача контекста между сервисами, отличие Kafka от RabbitMQ, партиции и гарантии доставки. Финальная часть посвящена deadlock, оптимистическим и пессимистическим блокировкам, happens-before и уровням изоляции. Интервьюер также проверяет понимание работы Spring-прокси и рисков долгих блокирующих вызовов внутри транзакции.

Затронутые темы

Что взять на заметку

  • Порядок полей в составном индексе влияет на возможность использовать его в запросе.
  • Трассировка связывает спаны в цепочку запроса между сервисами.
  • Гарантии доставки Kafka требуют участия логики потребителя, поскольку брокер не делает обработку бизнес-сообщения идемпотентной сам.
  • Если транзакция уже захватила блокировки БД, долгий внешний вызов продлевает время их удержания.
  • В стандартном прокси-режиме Spring self-invocation не перехватывается @Transactional; отдельную транзакционную границу обычно выносят в другой Spring-бин.

Рекомендуем посмотреть