Подготовка к собеседованию
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-соединения и ограничивает количество одновременных запросов к БД. Размер пула выбирают по нагрузке и возможностям базы, а не увеличивают без измерений.
Как использовать этот список
Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.
Посмотреть другие профессии →