Ответ
На собеседовании для Java-разработчика среднего/старшего уровня обычно ожидаются вопросы по следующим ключевым темам:
-
Java Core:
- Коллекции (
ArrayListvsLinkedList,HashMapvsConcurrentHashMap). - Многопоточность (пулы потоков,
synchronized,volatile,Lock). - Принципы ООП и SOLID.
- Работа JVM (память, сборка мусора, classloader).
- Коллекции (
-
Фреймворки и технологии:
- Spring (Core, Boot, MVC, Data, Security).
- Hibernate/JPA (отображение, кэширование,
N+1проблема).
-
Паттерны проектирования (Singleton, Factory, Observer, стратегии применения).
-
Алгоритмы и структуры данных (базовая сложность, реализация на доске/в IDE).
-
Системы контроля версий (Git), базы данных и SQL.
Пример вопроса по коллекциям:
// HashMap не потокобезопасна, но быстрая для однопоточного доступа.
Map<String, Integer> hashMap = new HashMap<>();
// ConcurrentHashMap потокобезопасна за счёт сегментирования блокировок.
Map<String, Integer> concurrentMap = new ConcurrentHashMap<>();