Вернуться в каталог собеседований

JAVA СОБЕСЕДОВАНИЕ | BACKEND-mock интервью

Разбор мок-собеседования Junior Java-разработчика с ответами кандидата, комментариями интервьюера и livecoding-задачей. Видео служит примером тем и уровня детализации, ожидаемых на техническом интервью.

Павел Сорокин
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 6,4 тыс.
  • Лайки на YouTube: 257
Открыть на YouTube

Таймлайн

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

Это мок-собеседование Junior Java-разработчика: кандидат Максим отвечает на вопросы, а ведущий Павел после ряда ответов разбирает более точные формулировки и недостающие детали. Обсуждаются Java Core, обработка исключений, многопоточность, CompletableFuture, паттерн Proxy, HTTP, Spring и транзакции в SQL-базах данных. В середине видео кандидат пытается решить задачу на удаление дубликатов из отсортированного массива, после чего ведущий показывает сначала вариант с дополнительным массивом, затем in-place решение.

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

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

  • Для immutable-объекта недостаточно сделать класс final и убрать сеттеры: изменяемые внутренние поля и возвращаемые коллекции нужно защищать копированием.
  • При многократной конкатенации строк используйте StringBuilder в однопоточном коде; StringBuffer синхронизирован и нужен, когда требуется потокобезопасность.
  • Ресурсы вроде файлов и соединений с БД стоит закрывать через try-with-resources: ресурс должен реализовывать AutoCloseable, а незакрытые соединения могут исчерпать лимит пула.
  • volatile даёт видимость изменений между потоками, но операция i++ не становится атомарной; для атомарного инкремента нужны AtomicInteger или другие потокобезопасные механизмы.
  • CompletableFuture удобен для неблокирующих цепочек преобразований и обработки результата или ошибки; у Future вызов get() блокирует текущий поток.
  • Для предотвращения deadlock ведущий предлагает единый порядок захвата блокировок и ограничение времени удержания ресурса.
  • В задаче на удаление дубликатов из отсортированного массива можно вести индекс позиции для следующего уникального элемента и переписывать уникальные значения в начало исходного массива.

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