Ответ
За последние несколько месяцев собеседования были сфокусированы на следующих ключевых областях для Backend-разработчика:
Основные темы:
- Core Java: Коллекции, многопоточность, JVM (память, сборка мусора).
- Spring Framework: Spring Boot, MVC, Security, транзакции.
- Базы данных: SQL, оптимизация запросов, индексы.
- Архитектура: Микросервисы, паттерны проектирования, REST API.
- Алгоритмы: Базовые структуры данных и их сложность.
Пример практического вопроса:
Map<String, String> map = new HashMap<>();
map.put(new String("key"), "value1");
map.put(new String("key"), "value2");
System.out.println(map.size());
Ответ: 2
Объяснение: Ключи new String("key") — это два разных объекта. HashMap вычисляет хэш-код для каждого ключа при добавлении (метод hashCode()). Поскольку это разные объекты, их хэш-коды могут быть разными (если не переопределен hashCode), и они размещаются в разных «корзинах» (buckets) мапы.