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

Тестовое собеседование Java разработчика #20 - Игорь Самойлов

Тестовое Java-собеседование с разбором ответов кандидата: от Java Core и SQL до Hibernate и Spring. Ведущий использует практические примеры с Person, бинарными деревьями, таблицей клиентов и связью Customer—Order.

Источник: Eugene Suleimanov

Открыть на YouTube

Таймлайн

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

Это тестовое собеседование будущего 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.

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