Вернуться в видеотекуКоротко о видео
Это тренировочное техническое интервью для Junior Java Developer с Артёмом, который уже прошёл стажировку и хочет получить обратную связь по знаниям. Вопросы охватывают ООП, SOLID, Java Core, коллекции, многопоточность и Spring Framework, после чего кандидат решает и тестирует небольшую задачу FizzBuzz. Ведущий разбирает неточности ответов и кода, а в конце рекомендует больше практики, проектов и обсуждений кода с ментором или коллегами.
Затронутые темы
Что взять на заметку
- Для ООП важно различать абстракцию — выделение существенного и сокрытие деталей — и полиморфизм, позволяющий подставлять разные реализации абстрактного типа.
- При разделении интерфейсов и классов стоит исходить из доменной области, будущих изменений и заинтересованных пользователей, а не только из числа методов или одинаковых полей.
- В Java оператор == сравнивает ссылки на объекты; для смыслового сравнения нужен equals(), а переопределённые equals() и hashCode() должны соблюдать контракт.
- Синхронизация защищает состояние общего объекта, но несинхронизированное чтение может получить неактуальное значение; ReadWriteLock полезен, когда чтений много, а записи редки.
- Нужно уметь объяснить разницу между dependency injection и Dependency Inversion Principle, назначение Spring bean scopes, DispatcherServlet и маршрутизацию через @RequestMapping, @PathVariable и @RequestParam.
- Для FizzBuzz в задании достаточно покрыть сценарии кратности 3, 5, 3 и 5 одновременно, а также выброс исключения; byte[] следует сравнивать через assertArrayEquals, а unit-тесты держать изолированными без общего состояния.