Размер:
A A A
Цвет: C C C
Изображения Вкл.Выкл.
Обычная версия сайта
Demidov Yaroslavl State University

Наш адрес: 150003, г. Ярославль, ул. Советская, д. 14
График работы с посетителями в отделах университета:
пн, вт, ср, чт: 9.00-12.00, 14.00-17.00,
пт: 9.00-12.00, 14.00-16.00.
Приемная комиссия: +7 (4852) 303210
Ректорат: +7 (4852) 797702
Факс: +7 (4852) 255787
e-mail: rectorat@uniyar.ac.ru

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

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

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

  •  Обзор предстоящего курса.

  •   Особенности платформы и языка. Виртуальная машина Java.

  •   Необходимые программы для разработки: JDK, JRE, IDE.

  •   Различные версии Java: Jave SE, Java EE, Java ME, Android SKD.

  •   Создание, компиляция и запуск простой программы на Java.

  •   Обзор IDE Eclipse. Отладка программ.

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 8 и предыдущих версиях.

  • Библиотека JodaTime.

  • Форматирование чисел и дат с учетом локали.

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

  • Понятие потока в операционной системе и виртуальной машине Java.

  • Создание потоков, жизненный цикл потока.

  • Проблемы и их решения в многопоточном программировнии: состояние гонки, блокировки и взаимоблокировки.

  •  Wait/Notify механизм оповещения потоков.        

  •  java.util.concurrent, коллекции для работы в многопоточной среде.

  • Atomic типы.

  • Создание потоков через Executor и пул потоков.

  • Fork-Join фреймворк.

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

  • Функциональные интерфейсы.
  • Обобщения в лямбда функциях.
  • Ссылки на методы.

  •  Стандартные функциональные интерфейсы.    

  •  Stream API Стандартные интерфейсы Stream.

  • Параллельное выполнение.

  • Терминальные и нетерминальные операции.

  • Ленивые вычисления.

  • Работа с асинхронными вычислениями при помощи CompletableFuture.

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


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

 

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

  • Инструмент Apache Maven.          

  • Концепция maven.

  • Структура pom.xml и жизненный цикл сборки приложений.

  • Зависимости и репозитории.

  • Архетипы для создания приложений.

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

  • Сервера приложений и контейнеры сервлетов на примере Glass Fish, Tomcat, Jetty.

  • Зачем нужны сервера приложений.

  • Подходы применяемые в разработке приложений по спецификации Java EE.

  • Развертывание приложений, контекст приложения.

  • Отладка приложений JPDA.

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

  • Протокол HTTP и основные методы.

  • Понятие Servlet, HTTP Request, HTTP Response. Создание динамического контента при помощи сервлетов.

  •  Фильтрация запросов при помощи Filter.

  •  Развертывание приложения в контейнере сервлетов Tomcat.

  •  Дескриптов развертывания web.xml.

  • Жизненный цикл и контекст сервлета.

  • Работа с пользовательской сессией HTTP Session.

  • Технология JSP.

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

  • Организация логики переходов между страницами.

  • Принцип работы JSF. Шаблон пользовательского интерфейса.

  • Набор пользовательских компонентов в библиотеке Primefaces.

  • Асинхронное взаимодействие AJAX и обработка событий.

  • Внедрение зависимостей @ManagedBean.

  • Шаблоны и валидация введенных данных.

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

  • Предназначение ORM.

  • Отличие Hibernate от JPA.

  • Сохранение сущности, чтение сущности.

  • Реализация различных связей: один к одному, один ко многим, многие ко многим.

  • Ленивая загрузка данных.

  •  Язык запросов HQL и Criteria API.

  •   Настройка поток соединений hibernate.

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

  • Работа с xml при помощи JAXB.

  • Основные понятия: SOA, Web service, SOAP, WSDL.

  • Создание веб сервисов top-down и bottom-up.   

  • Развертывание веб сервисов.

  • Генерация клиента для веб сервиса.

  • Интеграция при помощи веб сервисов.

  • Реализация аутентификации и авторизации.

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

  • Понятие Dependency Injection и IOC.

  • Построение графа объектов при помощи CDI.

  • Область видимости при связывании объектов.

  • Связывание при помощи setter, полей и конструкторов.

8. Rest сервисы и реализация их JAX-RS.

  • Передача данных при помощи JSON.

  • Работа с JSON в Java.

  • Создание и развертывание Rest сервиса.

  • Подход HATEOAS к создания приложений.

  •   Тестирование сервисов и создание клиента к Rest сервису.

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

  • Java Heap и утечки памяти в Java приложениях.

  • Анализ проблем связанных с многопоточностью.

  • Мониторинг приложений и профилирование.

  • Java Mission Control, jvisualvm, встроенные средства мониторинга приложений.

  • Снятие дампов и анализ дампов памяти.

  • Технология загрузки классов.

  • Проблемы связанные с загрузкой классов в Java приложениях.

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

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