+7 (4852) 79-77-26
Образовательный центр ИТ-Парк ЯрГУ им. П.Г. Демидоваа

Программа курсов

ПРОГРАММА
учебного курса
«Разработка корпоративных приложений на Java»

Часть первая. Язык программирования Java SE.

1. Базовые сведения о Java.

  • Обзор предстоящего курса.
  • Особенности платформы и языка. Виртуальная машина Java.
  • Необходимые программы для разработки: JDK, JRE, IDE.
  • Различные версии Java: Jave SE, Java EE, Java ME, Android SKD. Модульная система Java
  • Создание, компиляция и запуск простой программы на Java. JShell
  • Обзор IDE Eclipse и JIdea. Отладка программ.

2. Типы данных. Управляющие конструкции.         

  • Примитивы и обертки.
  • Автоупаковка и распаковка.
  • Преобразование типов.
  • Строки. StringBuilder           
  • Операторы.
  • If, switch конструкции.

3. Массивы и циклы.

  • Работа с массивами: создание, обход, сравнение.
  • Введение в коллекции.   
  • Циклы for, for-each, while, do while  

4. Введение в ООП. Классы и объекты.

  •  Конструкторы и методы.
  •  Ключевые слова this, final.
  •  Интерфейсы и абстрактные классы.
  •  Наследование и полиморфизм.
  •  Ключевое слово super, аннотация @Override    
  •  Модификаторы видимости.
  •  Перегрузка и переопределение.
  •  Пакеты и статический импорт.
  •  Ключевое слово instanceof, преобразование типов.     
  •  Вложенные классы.
  •  Перечисления.

5.  Принципы объектно-ориентированного дизайна приложений. Интерфейсы или абстрактные классы.

  • Композиция или наследование.
  • Синглтон.
  • Фабричный метод и абстрактная фабрика.
  • Паттерн DAO.

6. Обобщения и коллекции.

  • Синтаксис Generic в Java.
  • Построение сложной модели наследования при помощи обобщений.
  • Обобщения в стандартной библиотеке Java: списки, множества, карты.
  • Синтаксис Diamond. 

7. Работа со строками.

  • Методы поиска, разбора строк.
  • Регулярные выражения.
  • Форматирование строк.
  • Классы StringBuilder и StringBuffer.




8. Базовый ввод-вывод.

  • Запись и чтение из консоли, файла.
  • Потоки символьные и байтовые.
  • Пакеты java.io, java.nio.

9. Обработка ошибок. Выбрасывание исключений. 

  • Проверяемые и Runtime исключения.
  • Обработка нескольких исколючений.
  • Блок finally.
  • Освобождение ресурсов при помощи try with resources           
  • Комманда assert

10. Работа с базой данных с помощью JDBC.         

  • Архитектура JDBC.
  • Соединение с базой, драйвера БД.
  •  Выполнение запросов.
  •  Statement и PreparedStatement.
  •  Пул соединений.
  •  Транзакции.

11. Работа с файлами.  

  • Классы File, Path.
  • Обход каталога.
  • Операции над файлами, символическими ссылками.
  • Различные методы чтения и записи файлов.

12. Локализация, дата и время.         

  • Класс Locale.
  • Использование ResourceBundle.
  • Работа с датой в Java.
  • Форматирование чисел и дат с учетом локали.

13. Многопоточное и реактивное программирование в Java.            

  • Понятие потока в операционной системе и виртуальной машине Java.
  • Создание потоков, жизненный цикл потока.
  • Проблемы и их решения в многопоточном программировнии: состояние гонки, блокировки и взаимоблокировки.
  •  Wait/Notify механизм оповещения потоков.        
  •  java.util.concurrent, коллекции для работы в многопоточной среде.
  • Atomic типы.
  • Создание потоков через Executor и пул потоков.
  • Fork-Join фреймворк.
  • Reactive Streams API

14. Лямбда функции и функциональное программирование.

  • Функциональные интерфейсы.
  • Обобщения в лямбда функциях.
  • Ссылки на методы.
  •  Стандартные функциональные интерфейсы.    
  •  Stream API Стандартные интерфейсы Stream.
  • Параллельное выполнение.
  • Терминальные и нетерминальные операции.
  • Ленивые вычисления.
  • Работа с асинхронными вычислениями при помощи CompletableFuture.

Экзамен по первой части курса.



Часть вторая. Разработка корпоративных приложений и сервисов на платформе Java.

 

1. Организация сборки проекта на Java.

  • Инструмент Apache Maven.          
  • Концепция maven.
  • Структура pom.xml и жизненный цикл сборки приложений.
  • Зависимости и репозитории.
  • Архетипы для создания приложений.
  • Коротко о gradle

2. Введение в разработку корпоративных приложений. Спецификация Java EE Обзор.

  • Сервера приложений и контейнеры сервлетов на примере Glass Fish, Tomcat, Jetty.
  • Зачем нужны серверы приложений.
  • Подходы применяемые в разработке приложений по спецификации Java EE.
  • Развертывание приложений, контекст приложения.
  • Отладка приложений JPDA.
  • Технологии контейнеризации и развертывания масштабируемых корпоративных приложений (Docker, K8s)

3. Servlet API для генерации динамического контента.

  • Протокол HTTP и основные методы.
  • Понятие Servlet, HTTP Request, HTTP Response. Создание динамического контента при помощи сервлетов.
  •  Фильтрация запросов при помощи Filter.
  •  Развертывание приложения в контейнере сервлетов Tomcat.
  •  Дескриптов развертывания web.xml.
  • Жизненный цикл и контекст сервлета.
  • Работа с пользовательской сессией HTTP Session.

4. Работа с Web Services.

  • Работа с xml при помощи JAXB.
  • Основные понятия: SOA, Web service, SOAP, WSDL.
  • Создание веб сервисов top-down и bottom-up.   
  • Развертывание веб сервисов.
  • Генерация клиента для веб сервиса.
  • Интеграция при помощи веб сервисов.
  • Реализация аутентификации и авторизации.

5. Технология ORM на примере Hibernate.  

  • Предназначение ORM.
  • Отличие Hibernate от JPA.
  • Сохранение сущности, чтение сущности.
  • Реализация различных связей: один к одному, один ко многим, многие ко многим.
  • Ленивая загрузка данных.
  • Язык запросов HQL и Criteria API.
  • Настройка поток соединений hibernate.

6. Внедрение зависимостей при помощи CDI.

  • Понятие Dependency Injection и IOC.
  • Построение графа объектов при помощи CDI.
  • Область видимости при связывании объектов.
  • Связывание при помощи setter, полей и конструкторов
  • Spring Framework и его Spring Projects;
  • IoC-контейнер в Spring (контекст);
  • XML-контекст cо Spring Beans и DI между ними.

7. Rest сервисы и их реализация на Spring MVC.

  • Передача данных при помощи JSON.
  • Работа с JSON в Java.
  • Создание и развертывание Rest сервиса.
  • Подход HATEOAS к создания приложений.
  • Тестирование сервисов и создание клиента к Rest сервису.
  • Архитектуры MVC и Spring MVC;
  • Web-слой на Spring MVC;
  • Простой REST-сервис на Spring MVC (без View).

8. Разработка пользовательского интерфейса при помощи Spring MVC.

  • Асинхронное взаимодействие AJAX и обработка событий.
  • Spring Web Flow, как высокоуровневая надстройка над Spring MVC;
  • приложения на jQuery c использованием AJAX;
  • современные приложения на Vue;

9. Анализ производительности Java приложений.

  • Java Heap и утечки памяти в Java приложениях.
  • Анализ проблем связанных с многопоточностью.
  • Мониторинг приложений и профилирование.
  • Java Mission Control, jvisualvm, встроенные средства мониторинга приложений.
  • Снятие дампов и анализ дампов памяти.
  • Технология загрузки классов.
  • Проблемы связанные с загрузкой классов в Java приложениях.

10. Подготовка к прохождению собеседования на должность Java Developer.

Разбор типичных вопросов, которые задают на собеседовании.







         
Учебные центры

Сетевая академия CISCO

IT Academy Microsoft

Академическая программа EMC

ИПАП

Учебный центр D-Link