ПРОГРАММА КУРСА
«Программирование на Java.
Начальный уровень»
1. Структура платформы Java: JDK, JRE, JVМ.
2. Типы данных: примитивные и ссылочные.
3. Переменные.
4. Операторы.
  • Преимущества Java.
  • Преобразование исходных кодов в байткод.
  • Лексические основы языка.
  • Создание простейшей программы.
  • Работа с программой в среде IDE и с помощью командной строки.
  • Подробное рассмотрение кода простейшей программы.
  • Числовые.
  • Символьные.
  • Логические.
  • Строковые.
  • Понятие переменной.
  • Правила именования переменных.
  • Создание новых переменных.
  • Арифметические операторы.
  • Операторы сравнения.
  • Логические операторы.
  • Оператор присваивания.
  • Приведение типов.
  • Унарные операторы.
  • Особенности операторов при работе со строками.
  • Метод main.
  • Работа с консолью приложения.
Практика: Примеры использования операторов.
5. Условные операторы выполнения.
  • Оператор if и примеры использования.
  • Вложенный оператор if и примеры использования.
  • Конструкция else if и примеры использования.
  • Оператор выбора switch и примеры использования.
Практика: Задачи для закрепления материала, домашнее задание.
6. Циклы.
  • Оператор цикла while, do while и примеры использования.
  • Оператор цикла for и примеры использования.
  • Вложенные циклы. Написание и разбор примера вложенного цикла.
Практика: Разбор примера вывода в цикле. Задачи для закрепления материала, домашнее задание.
7. Массивы.
  • Понятие массива, примеры создания массивов.
  • Примеры заполнения и вывода массивов.
  • Многомерные и нерегулярные массивы.
Практика: Создание и работа с одномерным и многомерным массивом. Задачи для закрепления материала, домашнее задание.
8. Введение в классы.
  • Общее понятие и структура класса.
  • Понятие функции.
  • Пакеты.
  • Класс Math.
  • Класс Arrays.
  • Классы обертки. Boxing/Unboxing.
  • Дата и время.
9. Строки.
  • Строки и примеры работы со строками.
  • String, StringBuffer, StringBuilder.
  • Класс StringTokenizer.
  • Классы Pattern и Matcher.
  • Регулярные выражения (синтаксис, составления, примеры).
Практика: Написание и разбор примера заполнения и перебора массива строк в цикле. Разбор примера использования классов для работы со строками. Задачи для закрепления материала, домашнее задание.
10. Классы и объекты.
  • Модификаторы доступа.
  • Создание классов и объектов.
  • Особый тип класса ENUM.
  • Импорт, статический импорт.
  • Конструкторы. Ссылка this. Ключевое слово super.
  • Статические и константные члены класса, порядок инициализации.
  • Жизненный цикл объекта, метод finalize.
  • Наследование.
  • Переопределение и перегрузка методов.
Практика: Задачи для закрепления материала, домашнее задание.
11. Абстрактные классы и интерфейсы.
  • Структура интерфейса.
  • Структура абстрактного класса.
  • Сравнение и примеры использования абстрактного класса и интерфейса.
  • Обзор возможностей и типов интерфейса Java7 и Java8.
  • Разбор интерфейсов Clonable, Comparable и класса Comparator.
  • Функциональные интерфейсы.
12. Внутренние классы.
  • Особенности использования внутренних и вложенных классов.
  • Анонимные классы.
13. Аннотации.
  • Назначение аннотаций.
  • Примеры стандартных аннотаций.
  • Создание собственных аннотаций.
Практика: Пример создания собственных аннотаций.
14. Дженерики.
  • Понятие дженерик-типа.
  • Преимущества и примеры использования дженериков.
15. Коллекции.
  • Списки (list и имплементации).
  • Множества (set и имплементации).
  • Очереди (queue и имплементации).
  • Карты (map и имплементации).
  • Итераторы.
  • Неизменяемые коллекции.
  • Потокобезопасные коллекции.
Практика: Задачи для закрепления материала, домашнее задание.
16. Исключения
  • Основные типы исключений.
  • Перехват исключений. Создание собственных исключений.
  • Освобождение ресурсов с использованием finally.
  • Работа с try-with-resources. Множественные исключения.
Практика: Написание и разбор примера собственного исключения. Задачи для закрепления материала, домашнее задание.
17. Работа с файлами
  • Операции ввода/вывода в Java.
  • Работа с файлами. Основные классы потоков ввода/вывода.
  • Чтение и запись в файл. Сериализация объектов.
  • Сериализация
Практика: Задачи для закрепления материала, домашнее задание.
18. XML
  • Понятие XML. Достоинства и недостатки.
  • Структура документа XML.
  • DTD, XSD.
  • DOM, SAX, STAX парсеры.
  • XSL, XSLT.
Практика: Задачи для закрепления материала, домашнее задание.
19. Потоки
  • Основы построения многопоточных приложений в Java: класс Thread.
  • Создание, запуск и завершение потоков.
  • Разделяемые ресурсы.
  • Взаимодействие потоков. Дедлоки.
  • Параллельные потоки.
Практика: Написание и разбор примера выполнения параллельных потоков и дедлока. Задачи для закрепления материала, домашнее задание.
20.Новое в Java.
  • Лямбда выражения. Lambda scopes.
  • Stream API.
  • Ссылки на методы и конструкторы.
  • Предикаты.
  • Функции.
  • Поставщики и потребители.
  • Компараторы.
  • Опциональные значения.
  • Модули.
Практика: Задачи для закрепления материала, домашнее задание.
21. Работа с БД.
  • Общее понятие БД, структуры и нормальных форм БД.
  • Общее понятие и примеры синтаксиса SQL запросов.
  • Использование JDBC driver.
Практика: Пример подключения к базе для чтения данных. Задачи для закрепления материала, домашнее задание.