Подготовка по специальности

Собеседование Java-разработчика:
вопросы и ответы.

Java-интервью строится вокруг четырёх тем: коллекции и язык, устройство JVM, многопоточность и экосистема Spring/Hibernate. Вопросы предсказуемы — глубина ответов и связь с практикой отличают сильного кандидата от прочитавшего конспект.

Обновлено 5 августа 2026 г.10 вопросов с разбором
Короткий ответ

Не пытайтесь выучить все ответы: интервьюеры проверяют понимание, а не память. Разберите темы ниже, прорешайте типичные вопросы вслух и свяжите каждый ответ с примером из собственного опыта.

01 · Процесс

Как обычно проходит интервью

Обычно: скрининг, секция по Core Java (коллекции, JVM, многопоточность), секция по Spring и базам данных, live coding или тестовое задание, для middle и выше — системный дизайн. В банках и финтехе — а это большая часть Java-вакансий в России — добавляются вопросы про транзакции и надёжность.

02 · Темы

Что нужно знать перед интервью

Core Java

  • коллекции: устройство HashMap, ArrayList против LinkedList
  • equals/hashCode и их контракт
  • Stream API, Optional, лямбды
  • исключения: checked против unchecked
  • records, sealed classes, новшества свежих версий

JVM и многопоточность

  • память JVM: heap, stack, metaspace
  • сборщики мусора: G1, ZGC — принципы и выбор
  • synchronized, volatile, java.util.concurrent
  • пулы потоков, ExecutorService, виртуальные потоки
  • happens-before и модель памяти Java

Spring и данные

  • IoC-контейнер, жизненный цикл бина, скоупы
  • @Transactional: как работает и когда молча не работает
  • Hibernate: lazy/eager, N+1, кеши первого и второго уровня
  • Spring Boot: автоконфигурация, стартеры

03 · Вопросы

Реальные вопросы с разбором ответов

Пометка у вопроса — как часто он встречается на реальных интервью: почти всегда часто иногда

01. Как устроена HashMap внутри?

почти всегда

Массив бакетов, хеш ключа определяет бакет, коллизии — связный список, при превышении порога — красно-чёрное дерево. Упомяните load factor, ресайз и почему важен неизменяемый ключ с корректными equals/hashCode. Это вопрос номер один на Java-интервью.

02. Контракт equals и hashCode: что будет при нарушении?

почти всегда

Равные объекты обязаны иметь равный хеш. При нарушении HashMap «теряет» объект: положили по одному хешу, ищете по другому. Приведите пример: мутировали поле ключа после вставки. Скажите про генерацию через records или IDE.

03. Чем checked-исключения отличаются от unchecked и когда какие бросать?

часто

Checked проверяются компилятором и вынуждают обработку, unchecked — нет. Практика индустрии сместилась к unchecked для большинства случаев; checked — когда вызывающий реально может восстановиться. Главное — не глотать исключения молча.

04. Что делает volatile и чего он не делает?

почти всегда

Гарантирует видимость записи другим потокам и запрет переупорядочивания, но не атомарность составных операций: counter++ под volatile всё равно гонка. Для счётчиков — AtomicInteger, для сложных инвариантов — блокировки. Свяжите с happens-before.

05. Как работает @Transactional и в каких случаях он молча не работает?

почти всегда

Spring оборачивает бин в прокси, транзакция открывается при входе в публичный метод извне. Не работает: вызов this.method() внутри того же класса, приватные методы, проглоченное исключение (по умолчанию откат только на unchecked). Это любимая ловушка интервьюеров.

06. Что такое N+1 в Hibernate и как чинить?

часто

Ленивая загрузка коллекции в цикле порождает запрос на каждую сущность. Лечение: JOIN FETCH в JPQL, EntityGraph, батч-фетчинг. Скажите, как обнаружили бы: логирование SQL, метрики количества запросов на операцию.

07. Сравните G1 и ZGC. Когда важен выбор сборщика?

иногда

G1 — баланс пропускной способности и пауз, дефолт. ZGC — субмиллисекундные паузы на больших кучах ценой пропускной способности. Выбор важен при жёстких требованиях к латентности. Плюс: как смотреть GC-логи и что такое stop-the-world.

08. Виртуальные потоки: что меняют и когда не помогут?

часто

Лёгкие потоки поверх небольшого числа платформенных: тысячи блокирующих I/O-задач без пула. Не помогут на CPU-нагрузке и при synchronized-блокировках, пиннящих поток-носитель. Покажите, что понимаете отличие от реактивного подхода.

09. Жизненный цикл бина в Spring и разница скоупов singleton/prototype.

часто

Создание, внедрение зависимостей, BeanPostProcessor, init-методы, уничтожение. Singleton — один на контейнер (дефолт), prototype — новый на каждый запрос из контекста. Классическая ловушка: prototype, внедрённый в singleton, создаётся один раз.

10. Поведенческий: расскажите про сложную проблему производительности.

почти всегда

Схема: симптом → как мерили (профайлер, метрики, GC-логи) → причина → решение → эффект в цифрах. Для Java хорошо звучат кейсы про утечку памяти, N+1 или неудачный пул потоков. Подчеркните: сначала измерение, потом оптимизация.

04 · Практика

Live coding и тестовые задания

Частые форматы: задача на коллекции и Stream API, написать REST-эндпоинт на Spring Boot с валидацией и работой с БД, найти проблему в многопоточном коде, отрефакторить фрагмент с запашками.

В тестовых заданиях смотрят на слои приложения, обработку ошибок, транзакционные границы и тесты. JUnit с Mockito и пара интеграционных тестов через Testcontainers производят сильное впечатление.

Отвечайте из своего опыта. Подсказки, шпаргалки и AI-инструменты работают только как опора для собственной мысли: выдуманный опыт раскрывается первым же уточняющим вопросом.

Общая подготовка — резюме, техника, звук и демонстрация экрана — разобрана в чек-листе подготовки к онлайн-собеседованию. Как осознанно использовать AI-подсказки во время звонка — в гайде «Как использовать AI на собеседовании».

05 · FAQ

Частые вопросы

Какую версию Java нужно знать?

Ориентируйтесь на актуальную LTS-версию и умение назвать ключевые новшества последних LTS: records, sealed classes, pattern matching, виртуальные потоки. В проде компании часто сидят на более старых LTS — понимание различий между версиями само по себе плюс на интервью.

Насколько глубоко спрашивают Spring?

Джуну достаточно IoC, DI, аннотаций и общего устройства Spring Boot. От middle ждут понимания проксирования, жизненного цикла бинов, ловушек @Transactional и умения объяснить автоконфигурацию. Знание исходников — редкое требование, понимание механики — обязательное.

Нужны ли алгоритмы Java-разработчику?

База обязательна: сложность операций коллекций, сортировки, работа с hash-структурами — это спрашивают через устройство HashMap и выбор коллекции под задачу. Отдельные алгоритмические секции — в крупных технологических компаниях и реже в банках.

Тренировка перед интервью

Репетируйте ответы вслух с Mira

Mira слышит вопрос и подсказывает опору для ответа прямо во время звонка. 30 минут бесплатно каждый месяц, банковская карта не нужна.

Скачать Mira