Разбираемые темы
0. Вступительные замечания (теория - 0.25 ч, практика - 0 ч.)
Назначение, характер и структура сертификационного теста, его специфика и “подводные камни”, классификация задач, контекстные допущения.
1. Основы языка Java (теория – 0.25 ч, практика – 0.5 ч.)
Определение области действия переменных; структура класса в Java;
Создание исполнимых Java-приложений с методом main(); запуск Java-программы с командной строки, в т. ч. вывод в консоль; импорт Java-пакетов.
2. Типы данных (теория – 0.25 ч, практика – 0.25 ч.)
Объявление и инициализация переменных (включая приведение примитивных типов данных);
Дифференциация между ссылочными и примитивными переменными; чтение и запись полей объектов; жизненный цикл объекта (создание, переприсваивание ссылки и сборка мусора);
Разработка кода, использующего классы-оболочки, в частности, Boolean, Double и Integer.
3. Операторы и структуры ветвления (теория – 0.25 ч, практика – 0.5 ч.)
Применение операторов, включая переопределение приоритета;
Проверка идентичности строковых и других объектов с использованием оператора == и метода equals();
Конструкции if и if-else, а также тернарный оператор; применение оператора switch.
4. Создание и применение массивов (теория – 0.25 ч, практика – 0.5 ч.)
Объявление, создание и применение одномерных и многомерных массивов.
5. Работа с циклами (теория – 0.25 ч, практика – 0.25 ч.)
Создание и применение циклов for (в т.ч. for-each), while и do-while;
Применение операторов break и continue.
6. Методы и инкапсуляция (теория – 1 ч, практика – 3 ч.)
Создание методов с аргументами и возвращаемыми значениями, в т.ч. перегрузка методов;
Поведение объектных ссылок и примитивных переменных, передаваемых в методы
Применение ключевого слова static к методам и полям; модификаторы доступа;
Реализация принципов инкапсуляции в классе, создание и перегрузка конструкторов, включая влияние на дефолтный конструктор.
7. Наследование (теория – 1 ч, практика – 4 ч.)
Наследование и его преимущества; разработка кода, демонстрирующего полиморфизм, включая переопределение методов и противопоставление объектного типа ссылочному;
Необходимость в приведении типов;
Применение ключевых слов super и this для доступа к объектам и конструкторам;
Применение абстрактных классов и интерфейсов.
8. Обработка исключений (теория – 0.25 ч, практика – 0.5 ч.)
Противопоставление контролируемых исключений неконтролируемым, в т.ч. ошибкам;
Создание блока try-catch и влияние исключений на штатный алгоритм работы программы;
Преимущества обработки исключений; создание и вызов метода, возбуждающего исключение;
Работа с типичными классами исключений (в частности, NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException).
9. Избранные классы библиотеки Java API (теория – 0.5 ч, практика – 1.5 ч.)
Манипуляция данными посредством класса StringBuilder и String; создание и манипуляция календарными датами посредством классов из пакета java.time (напр., LocalDateTime и др.);
Объявление и применение коллекций ArrayList заданного типа;
Составление простого лямбда-выражения, которое потребляет Predicate.
10. Основы git и сборка проектов с помощью Maven (теория – 0.25 ч, практика – 0.5 ч.)
⠀
11. Основы баз данных (теория – 0.25 ч, практика – 0.5 ч.)
⠀
12. Spring Boot (теория – 2 ч, практика – 4 ч.)
⠀
13. Основы JPA / Hibernate и Spring Data (теория – 2 ч, практика – 5 ч.)
⠀
14. Spring REST (теория – 2 ч, практика – 5 ч.)
⠀
15. Базовые навыки работы с каркасом JUnit (теория – 0.25 ч, практика – 0.75 ч.)
⠀
16. Модульная система (теория – 0.5 ч, практика – 1 ч.)
⠀
17. Принципы создания безопасного кода (теория – 0.25 ч, практика – 0.5 ч.)
Итого: теория – 12 ч. (30%), практика – 28 ч. (70%)