Программирование на Java SE 11 (Уровень 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

Первое занятие 6 апреля 2020 года.

Стоимость обучения — 10 000 р.

Время проведения занятий: понедельник, среда с 18-45 до 21-30.

Записаться на курс

ПРИ ПОДДЕРЖКЕ

КОНТАКТЫ

  • Учебный Центр КУДИЦ
  • 117485 Москва, улица Профсоюзная, 84/32
  • +7 (495) 246-00-96
  • ew@qdts.ru