Техническое интервью Java Developer - Артем Рутковский
Разборочное мок-интервью по Java Junior: от фундаментальных вопросов до Spring и многопоточности. В финале кандидат и интервьюер пошагово исправляют решение задачи с generic-массивом.
Максим Добрынин | ex. Jetbulb
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 52,2 тыс.
- Лайки на YouTube: 1,3 тыс.
Таймлайн
Коротко о видео
Тренировочное техническое интервью для Junior Java Developer с Артёмом Рутковским: кандидат отвечает на вопросы по Java, а интервьюер уточняет и разбирает неточные места. Обсуждаются ООП, SOLID, память, Object/equals, коллекции, исключения, многопоточность, generics, Java 8+, Spring и Spring MVC. В практической части разбирают преобразование обобщённого List в массив, ClassCastException, ковариантность массивов, инвариантность generics и создание типизированного массива через Array.newInstance.
Затронутые темы
Что взять на заметку
- Подготовить объяснение инкапсуляции и Interface Segregation Principle: пустая реализация ненужного метода интерфейса указывает на слишком широкий контракт.
- Различать примитивные и ссылочные типы, назначение stack и heap, а также сравнение примитивов, ссылок и объектов через equals.
- Знать контракт equals: по умолчанию он сравнивает ссылки; для смыслового сравнения собственных объектов метод переопределяют по значимым полям и соблюдают рефлексивность, симметрию, транзитивность и консистентность.
- Для сортировки объектов без переданного Comparator нужно реализовать Comparable; Collections.sort делегирует List.sort, а Comparator нужен для другого порядка сравнения.
- Различать checked и unchecked исключения, throw и throws, роль finally и преимущество try-with-resources для автоматического закрытия AutoCloseable-ресурсов.
- Generics работают только со ссылочными типами и могут объявляться на уровне класса или отдельного метода; область действия параметра типа зависит от места объявления.
- Для задачи List<T> → T[] учитывать type erasure: массив хранит тип во время выполнения, а generics — нет; типизированный массив можно создать через Array.newInstance, передав Class<T> и размер.