1. Java Core (Основы)
- ООП: Уверенное понимание принципов (инкапсуляция, наследование, полиморфизм, абстракция) и умение применять их на практике.
- Java Collections Framework: Знание основных структур данных (List, Set, Map) и понимание, как они устроены «под капотом» (особенно ArrayList и HashMap).
- Исключения (Exceptions): Иерархия исключений, блоки try-catch-finally, разница между checked и unchecked исключениями.
- Stream API и Lambda-выражения
- Многопоточность: Понимание жизненного цикла потока, synchronized, volatile, базовое знакомство с пакетом java.util.concurrent.
· Spring Boot: Умение развернуть приложение, понимание базовых аннотаций и конфигурации (application.properties / application.yml).
· Spring Core: Понимание принципов Inversion of Control (IoC) и Dependency Injection (DI), знание жизненного цикла бина.
· Spring Web & Web Services: * REST: Разработка RESTful API, создание контроллеров, обработка HTTP-запросов и ответов.
o SOAP: Понимание архитектурного стиля SOAP и его отличий от REST. Базовое знакомство со Spring WS (Spring Web Services), понимание структуры WSDL-схем, умение генерировать Java-классы на основе XSD/WSDL файлов (например, через плагины jaxb или cxf), а также умение создавать простые эндпоинты или SOAP-клиенты (WebServiceTemplate).
· Spring Data JPA: Написание базовых репозиториев, понимание взаимодействия фреймворка с базой данных.
3. Базы данных
- SQL: Уверенное написание запросов. Понимание SELECT, JOIN, GROUP BY, агрегатных функций и подзапросов
- ORM (Hibernate/JPA): Описание сущностей (Entities), понимание связей (One-to-Many, Many-to-Many), разница между ленивой (Lazy) и жадной (Eager) загрузкой.
4. Инструменты и технологии
- Системы контроля версий: Git (основные команды: commit, push, pull, merge, базовое понимание ветвления и разрешения конфликтов).
- Сборка проектов: Maven или Gradle (понимание структуры конфигурационных файлов, управление зависимостями).
- Форматы данных: Понимание работы с JSON, а также умение парсить или генерировать XML.
- Тестирование API: Навыки работы с Postman или Swagger для проверки своих эндпоинтов.
5. Тестирование
- Опыт написания unit-тестов с использованием JUnit.
