Программирование на Java SE 17 (Уровень 2)
Цель курса
|
В данном курсе студенты будут изучать различные практики языка программирования Java. Речь пойдет о тех специфических темах, которые не рассматриваются, или рассматриваются поверхностно в базовом курсе по разработке Java SE. В частности рассмтриваются приемы функционального программирования: использование Streams API. Обсуждаются темы организации взаимодействия приложения с базой данных с помощью JDBC, использования графических библиотек, настройки безопасности для приложений. Более глубоко, нежели чем на базовом курсе поднимается тема с созданием многопоточных приложений. Затрагиваются вопросы с созданием документации (javadoc) и написания модульных тестов (JUnit). Лабораторные упражнения выполняются после теоретических занятий, позволяя студентам на практике исследовать язык Java и закреплть изученные в ходе лекций понятия. Используется среда разработки Eclipse.
|
Для кого предназначен этот курс
|
Разработчиков, имеющих хотя бы минимальные навыки программирования на Java
|
Для успешного прохождения курса слушатели должны
|
|
По окончании курса слушатели смогут:
- Использовать потоки (Streams API)
- Организовать взаимодействие программы с базой данных
- Работать с временами и датами
- Делать вставки с кодом на JavaScript
- Использовать аннотации
- Настраивать модель безопасности для приложений
- Писать приложения с графическим интерфейсом
- Использовать нативные вставки
- Писать многопоточные приложения и настраивать взаимодействие потоков
- Описать, как шаблоны разработки используются в проектировании приложений
- Проводить рефакторинг кода Java
- Создавать документацию с помощью javadoc
- Писать модульные тесты
|
Основные темы:
- Обобщенное программирование (Generic Programming)
- Принципы обобщенного программирования
- Обобщенные типы данных и методы
- Приведение обобщенных типов и наследование
- Затирание типов
- Упражнение: создание обобщенного класса
- Лямбда-выражения и функциональные интерфейсы
- Функциональные интерфейсы
- Использование лямбда-выражений в Java
- Синтаксис лямбда-выражений
- Обзор стандартных функциональных интерфейсов
- Ссылки на методы
- Упражнение: использование лямбда-выражений
- Коллекции
- Java Collection Framework
- Обзор интерфейсов коллекций
- Обзор реализаций коллекций
- Доступ к элементам коллекции: итераторы
- Утилиты для работы с коллекциями: класс Collections
- Упражнение: операции с коллекциями
- Stream API
- Обработка потоковых данных
- Потоки в Java
- Особенности реализации потоковых алгоритмов
- Создание потоков
- Промежуточные и конечные операции
- Обзор операций над потоками
- Коллекторы и их использование
- Потоки примитивных типов
- Строители потоков
- Упражнение: использование Stream API для анализа больших объемов данных
- Аннотации
- Роль аннотаций в Java
- Обзор стандартных аннотаций
- Типы аннотаций
- Создание собственных аннотаций и их обработка
- Упражнение: создание аннотаций
- Рефлексия
- Доступ к описаниям классов во время выполнения
- Доступ к полям объектов средствами рефлексии
- Вызов методов средствами рефлексии
- Ограничения на использование рефлексии
- Упражнение: использование рефлексии для анализа структуры объектов во время выполнения
- Потоки выполнения и синхронизация
- Создание многопоточных приложений
- Порождение новых потоков
- Стадии жизненного цикла потока
- Проблема конкурентного доступа к данным в многопоточной среде
- Синхронизация и проблема дедлоков
- Упражнение: создание простого многопоточного приложения
- Управление многопоточностью
- Сценарии многопоточного программирования
- Коллекции, поддерживающие конкурентный доступ
- Последовательный доступ к данным без синхронизации
- Обзор стандартных библиотек для управления многопоточностью
- Упражнение: создание продвинутого многопоточного приложения
- Работа с базами данных (JDBC)
- Архитектура JDBC
- Типы JDBC драйверов, управление драйверами
- Создание соединения с БД
- Свойства соединения
- Запросы к БД
- Подготовленные запросы: работа с параметрами
- Вызов хранимых процедур
- Обработка полученных наборов данных
- Уровни изоляции и использование курсоров для доступа к данным
- Упражнение: чтение и запись данных в БД
- Модули в Java
- Модульная архитектура в Java
- Упражнение: создание модуля
- Дополнительные возможности Java
- Поддержка скриптовых языков программирования
- Нативные методы
- Автоматическая генерация документации - javadoc
- Динамическая компиляция
- Автоматизация тестирования - JUnit
- Юнит-тестирование
- Обзор возможностей JUnit
- Написание тестов
- Наборы тестов и автоматизация процесса тестирования
- Интеграция со средами разработки и инструментами сборки
- Упражнение: автоматизация юнит-тестирования средствами JUnit и maven
|
Первое занятие 7 ноября 2022 года.
Стоимость обучения — 10 000 р.*
График занятий
*Вы можете пройти обучение бесплатно. Для этого необходимо выполнить следующие условия:
- Посетить 90% занятий.
- Выполнить все самостоятельные практические работы, предполагаемые в курсе. Практические работы проводятся по пошаговым методичкам, при возникновении затруднений инструктор поможет их разрешить.
До начала занятий производится 100% предоплата, в случае выполнения условий, написанных выше, слушателю возвращается полная стоимость обучения (банковским переводом на карту).