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

Java: собеседование Middle Backend-разработчика

Открытое мок-собеседование Java Backend-разработчика уровня Middle с вопросами по Java Core, дженерикам, immutable-объектам, equals/hashCode, многопоточности и Spring @Async. В лайвкодинге кандидат с подсказками проектирует собственный пул потоков с очередью задач, worker-потоками и shutdown.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

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

В записи показано мок-собеседование по направлению Backend. Собеседник кандидата последовательно уточняет опыт и проверяет понимание тем: Java, StringBuilder, исключения, Spring, многопоточность. Кандидат объясняет подходы и отвечает на дополнительные вопросы; местами обсуждение переходит к практическому примеру или разбору решения. Материал позволяет увидеть ход технического разговора, тип уточняющих вопросов и глубину, которой ожидают от кандидата данного уровня.

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

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

  • Согласованно переопределяйте equals() и hashCode(): равные объекты обязаны иметь одинаковый хеш-код, а поля для сравнения выбираются по бизнес-идентичности объекта.
  • wait() вызывается при захваченном мониторе и освобождает его во время ожидания; Thread.sleep() монитор не освобождает. volatile обеспечивает видимость изменений, но не атомарность составных операций.
  • Runnable не возвращает результат и не объявляет checked exceptions, тогда как Callable<T> возвращает значение и может их бросать. CompletableFuture удобен для композиции асинхронных этапов, но get() и join() могут блокировать поток.
  • В задаче на собственный пул потоков сначала уточняйте контракт и проектируйте синхронизацию очереди, жизненный цикл worker-потоков, graceful shutdown и обработку InterruptedException.
  • Spring @Async работает через прокси: внутренний вызов метода того же бина не активирует асинхронный перехватчик; при необходимости следует явно настроить Executor.

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