Все профессии

Подготовка к собеседованию

Backend Java: вопросы и ответы на собеседовании

Вопросы по Java Core, Spring, многопоточности, REST и базам данных для backend-разработчиков.

Java Core

5 вопросов
Чем interface отличается от abstract class?junior

Интерфейс задаёт контракт и допускает реализацию нескольких интерфейсов. Абстрактный класс позволяет разделять состояние и общую реализацию, но наследование от него в Java одиночное.

Как устроены equals и hashCode?junior

Равные по equals объекты обязаны иметь одинаковый hashCode. Эти методы нужно согласованно переопределять для объектов, которые используются как ключи в HashMap или элементы HashSet.

Что такое checked и unchecked exception?junior

Checked-исключения компилятор требует обработать или объявить в throws. RuntimeException и её наследники unchecked и обычно сигнализируют о программной ошибке или нарушении предусловия.

Чем ArrayList отличается от LinkedList?junior

ArrayList быстро читает элементы по индексу и обычно эффективнее из-за локальности памяти. LinkedList имеет дешёвые вставки только при уже найденном узле, поэтому редко нужен в прикладном коде.

Что такое volatile?middle

volatile гарантирует видимость последнего значения между потоками и запрещает некоторые переупорядочивания. Он не делает составные операции вроде increment атомарными.

Spring и REST

3 вопросов
Зачем нужен Spring Boot?junior

Он задаёт готовые автоконфигурации, стартеры, встроенный сервер и единый способ запуска приложения. Разработчик описывает только отличающиеся настройки и бизнес-логику.

Как работает транзакция в Spring?middle

Аннотация @Transactional создаёт прокси, который открывает транзакцию до метода и фиксирует или откатывает её после выполнения. Важно учитывать границы прокси и не скрывать исключения.

Как тестировать Spring-приложение?middle

Unit-тестами проверяют чистую бизнес-логику, slice-тестами отдельный слой, а интеграционными тестами — реальные границы с БД или HTTP. Контекст поднимают только там, где это необходимо.

JVM и производительность

2 вопросов
Как искать утечку памяти в Java?senior

Сначала подтверждают рост heap и частые Full GC по метрикам, затем снимают heap dump и анализируют dominator tree. Частые причины — статические коллекции, не закрытые ресурсы и бесконтрольный кэш.

Что даёт пул соединений к БД?middle

Пул переиспользует TCP-соединения и ограничивает количество одновременных запросов к БД. Размер пула выбирают по нагрузке и возможностям базы, а не увеличивают без измерений.

Как использовать этот список

Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.

Посмотреть другие профессии →