Ответ
Собеседование проводит Senior Java-разработчик с опытом коммерческой разработки от 5 лет.
Области оценки во время интервью:
- Java Core & JVM:
- Коллекции, многопоточность (
ConcurrentHashMap,CompletableFuture), исключения. - Принципы работы JVM (память, сборка мусора, класслоадеры).
- Коллекции, многопоточность (
- Системное проектирование и архитектура:
- Принципы ООП, SOLID, основные паттерны проектирования (GoF).
- Проектирование масштабируемых сервисов, работа с базами данных.
- Практические технологии стека:
- Фреймворки: Spring (Core, Boot, MVC, Data, Cloud), Hibernate/JPA.
- Базы данных: SQL (транзакции, индексы), основы NoSQL.
- Инструменты: Maven/Gradle, Git, Docker, основы Kafka/RabbitMQ.
- Алгоритмы и структуры данных:
- Решение задач уровня LeetCode Medium, анализ сложности.
Пример типового вопроса на понимание основ:
// Что будет выведено и почему?
System.out.println(0.1 + 0.2 == 0.3);
Ответ: false. Из-за особенностей представления чисел с плавающей точкой в двоичном виде (0.1 + 0.2 дает 0.30000000000000004). Сравнивать такие числа нужно с допустимой погрешностью (epsilon): Math.abs(0.1 + 0.2 - 0.3) < 1e-10.
Обсуждаем реальный опыт, архитектурные решения и production-кейсы.