Java Собеседование | Backend-Mock интервью
Мок-интервью Java middle-разработчика с разбором ответов по Java, Spring, базам данных и микросервисам. Интервьюер отмечает сильные места кандидата и корректирует неточные объяснения.
Павел Сорокин
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 16,3 тыс.
- Лайки на YouTube: 506
Таймлайн
Коротко о видео
Автор проводит мок-собеседование с 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 уместна, когда не требуется немедленный ответ и нужна асинхронная доставка события.