Вернуться в видеотекуТестовое собеседование Java разработчика #18 - Владислав Селицкий
Учебное тестовое интервью с Junior Java-разработчиком о базовых концепциях Java, алгоритмах, многопоточности и работе с БД. Кандидат отвечает на вопросы и разбирает задачу поиска двух чисел с заданной суммой.
- Направление
- Backend
- Формат
- Видео
- Грейд
- Junior
- Длительность
- 46 мин
Коротко о видео
Тестовое собеседование Junior Java-разработчика Владислава Селицкого: кандидат сообщает о примерно полугоде опыта, учёбе на третьем курсе и работе с open-source-платформой CUBA/Jmix. Интервьюер проверяет основы Java: HashMap, примитивы и ссылки, Stream API, многопоточность и CAS, ООП, алгоритмическую задачу Two Sum, БД, ORM, кэширование и Spring. В нескольких темах кандидат уточняет или исправляет ответ по подсказкам интервьюера, в частности о Predicate для filter, отличии volatile от атомарности и решении Two Sum за линейное время.
Затронутые темы
Что взять на заметку
- Подготовить объяснение HashMap: массив бакетов, вычисление хэша, проверка equals при коллизии, средняя сложность O(1) и преобразование длинных цепочек в дерево.
- Уверенно различать копирование значения примитива и копирование ссылки на объект; отдельно объяснять, что byte занимает 8 бит и как это ограничивает диапазон значений.
- Для Stream API знать лямбды и функциональные интерфейсы: filter принимает Predicate, peek обычно используют для промежуточной отладки, а anyMatch возвращает boolean при наличии подходящего элемента.
- Разделять visibility и atomicity в многопоточности: volatile делает значение видимым потокам, но операция read-modify-write не становится атомарной; для счётчика подходят AtomicInteger и CAS.
- Уметь решить Two Sum за O(n): во время одного прохода искать target - currentValue среди уже сохранённых значений; HashSet достаточно, если нужно вернуть значения, а не индексы.
- Повторить основы БД и Spring: партиционирование, нормальные формы, назначение ORM, риски устаревшего кэша и роль Spring как IoC-контейнера для внедрения зависимостей.