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

Тестовое собеседование Java разработчика #24 - Никита Ким

Запись тестового Java-интервью с кандидатом, включающая теоретический опрос и совместный разбор алгоритмической задачи о палиндроме. Вторая половина посвящена SQL, Hibernate, Spring Boot, тестированию и контейнеризации.

Источник: Eugene Suleimanov

Открыть на YouTube

Таймлайн

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

В тестовом собеседовании кандидат Никита Ким рассказывает, что изучает Java с 2019 года с перерывами, работал с Java Core, немного со Spring и базами данных и хочет сменить работу до конца года. Интервьюер последовательно проверяет основы Java, коллекции и сложности алгоритмов, NIO, Stream API, многопоточность, SOLID, паттерны, SQL, ORM/Hibernate, Spring Boot, тестирование и Docker. Практическая часть посвящена проверке строки на палиндром, а в конце разбираются SQL-группировки и различия Docker с виртуальной машиной.

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

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

  • Подготовить объяснение сигнатуры `main`, назначения `static`, передачи аргументов запуска и устройства обычного массива: фиксированный размер, непрерывная память, `ArrayIndexOutOfBoundsException`.
  • Разобрать `ArrayList`: расширение происходит при достижении ёмкости, вставка в конец обычно O(1) амортизированно, а особенности зависят от позиции вставки и необходимости расширения.
  • Повторить худший случай QuickSort, различия `java.io` и NIO, а также назначение `CopyOnWriteArrayList`, буферов, каналов и селекторов.
  • Уметь различать промежуточные и терминальные операции Stream API, объяснять `map` и `flatMap`, функциональный интерфейс с одним абстрактным методом и связь лямбд с такими интерфейсами.
  • Повторить `ExecutorService`, `Runnable`, `Callable`, `Future` и `ForkJoinPool`: пул выполняет задачи, но не заменяет осознанный выбор числа потоков и модели параллелизма.
  • Для задачи о палиндроме подготовить решение двумя указателями после нормализации строки: сравнивать символы с начала и конца, получая O(n) по времени и O(1) дополнительной памяти без создания перевёрнутой строки.
  • Закрепить SQL-запросы с `GROUP BY` и `HAVING COUNT(*)`, а также различия ORM, JPA, Hibernate, кэшей Hibernate, unit/integration-тестов, Testcontainers, Docker и виртуальных машин.

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

46 мин
BackendJunior

Тестовое собеседование Java разработчика #18 - Владислав Селицкий

Учебное тестовое интервью с Junior Java-разработчиком о базовых концепциях Java, алгоритмах, многопоточности и работе с БД. Кандидат отвечает на вопросы и разбирает задачу поиска двух чисел с заданной суммой.

50 мин
BackendSenior

Тестовое собеседование Java разработчика #19 - Михаил Гончаренко

Запись тестового Java-интервью: теория Java и Spring, алгоритмическая задача и системный дизайн высоконагруженного сервиса изображений. Собеседующий уточняет и проверяет ответы кандидата на практических сценариях.