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

Java Собеседование | Backend-Mock интервью

Мок-интервью Java middle-разработчика с разбором ответов по Java, Spring, базам данных и микросервисам. Интервьюер отмечает сильные места кандидата и корректирует неточные объяснения.

Источник: Павел Сорокин

Открыть на YouTube

Таймлайн

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

Автор проводит мок-собеседование с Java-разработчиком Васей, который называет себя middle-разработчиком с примерно тремя годами опыта. Они разбирают Java Core, коллекции и HashMap, Stream API, многопоточность, Spring, Hibernate, базы данных и микросервисную архитектуру; после ряда ответов интервьюер даёт технические уточнения и исправления. Видео ориентировано на подготовку к Java backend-интервью и показывает не только вопросы, но и ожидаемую глубину объяснений.

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

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

  • Интерфейс задаёт контракт, а абстрактный класс может хранить состояние и общую реализацию; default-методы существуют и в интерфейсах.
  • У ArrayList доступ по индексу O(1), а LinkedList должен проходить по ссылкам; добавление в конец ArrayList амортизированно O(1), но при расширении массива имеет худший случай O(n).
  • Для ключей в HashMap нужно переопределять equals и hashCode совместно: равные по equals объекты обязаны иметь одинаковый hashCode; коллизия hashCode сама по себе допустима.
  • Промежуточные операции Stream API без терминальной операции не запускают вычисление, а уже использованный Stream нельзя переиспользовать.
  • volatile обеспечивает видимость чтений и записей между потоками, но не делает составные операции атомарными; для борьбы с race condition также нужны синхронизация, locks, immutable-объекты или concurrent-коллекции.
  • В Spring отсутствие обязательного bean останавливает запуск приложения; неоднозначность нескольких bean можно разрешать через @Qualifier, а основной кандидат — через @Primary.
  • N+1 возникает не только в Hibernate: проблема появляется при отдельном запросе к связанной сущности для каждой строки; её предотвращают выборкой связей через join/fetch join или EntityGraph.
  • ACID-consistency определяется бизнес-инвариантами приложения: например, перевод должен завершиться состоянием, где деньги одновременно списаны с одного счёта и зачислены на другой.
  • API Gateway может быть единой точкой входа: он собирает для фронтенда данные из нескольких микросервисов и скрывает их внутреннюю структуру; Kafka уместна, когда не требуется немедленный ответ и нужна асинхронная доставка события.

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