Тестовое собеседование Java разработчика #20 - Игорь Самойлов
Тестовое Java-собеседование с разбором ответов кандидата: от Java Core и SQL до Hibernate и Spring. Ведущий использует практические примеры с Person, бинарными деревьями, таблицей клиентов и связью Customer—Order.
Eugene Suleimanov
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 25,8 тыс.
- Лайки на YouTube: 712
Таймлайн
Коротко о видео
Это тестовое собеседование будущего Java-разработчика Игоря Самойлова: он рассказывает, что изучал Java по видео и на курсах, включая Spring, Hibernate, SQL, коллекции и многопоточность. Интервьюер проверяет Java Core, ООП, HashMap, многопоточность, Streams и исключения, а затем переходит к задаче на сравнение деревьев, SQL, Hibernate и Spring. Игорь в ряде ответов прямо отмечает, что не помнит определение или не может сразу сформулировать решение; в конце ведущий обещает личный фидбэк и материалы для закрытия пробелов.
Затронутые темы
Что взять на заметку
- Нужно чётко объяснять, что Java всегда передаёт аргументы по значению; для объектов значением является копия ссылки.
- Следует различать сравнение ссылок через == и логическое равенство через equals(), а для сущности Person уметь переопределить equals() и hashCode() по идентификатору.
- Нужно знать контракт equals()/hashCode(): равные по equals() объекты обязаны иметь одинаковый hashCode(), но одинаковый hashCode() сам по себе не доказывает равенство объектов.
- Стоит понимать устройство HashMap, роль Entry и хеширования, а также почему изменяемый ключ после помещения в Map может стать недоступным при поиске.
- Для Stream API нужно связывать map() с функциональным интерфейсом Function и различать промежуточные и терминальные операции.
- Нужно уметь написать SQL-запрос с GROUP BY city и HAVING COUNT(*) > 1000, а также отличать WHERE от HAVING.
- Следует разобрать LAZY-загрузку в Hibernate, получение связанных заказов в рамках сессии и базовые понятия Spring: BeanPostProcessor, scope, IoC/DI, жизненный цикл бина и Maven.