Вернуться в видеотекуJava Собеседование | Backend-Mock интервью
Мок-интервью Java middle-разработчика с разбором ответов по Java, Spring, базам данных и микросервисам. Интервьюер отмечает сильные места кандидата и корректирует неточные объяснения.
- Направление
- Backend
- Формат
- Мок-собеседование
- Длительность
- 1 ч 7 мин
Коротко о видео
Автор проводит мок-собеседование с 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 уместна, когда не требуется немедленный ответ и нужна асинхронная доставка события.