Курсы High Tech

Internet и Web-разработка

Java Standard Edition 11 (Java SE11). Язык программирования Java, базовый курс или часть 1


Продолжительность: 40 ч    

Описание курса

В предлагаемом курсе изучается платформа Java Standard Edition 11 (Java SE11) и дается описание синтаксиса языка Java, основ объектно-ориентированного программирования для лиц, начинающих изучение языка Java.

На курсе изучаются следующие темы: понимание классов и объектов, абстрактных классов, интерфейсов, наследования, основные пакеты Java, система исключений, класс String, интерфейс Collections, ввод-вывод, класс Class, загрузка классов, механизм Reflection, сериализация объектов, клонирование объектов, работа с аннотациями в Java, настраиваемые классы или Generics в Java, основы многопоточного программирования, основы программирования для сетей, сборка Java проектов – Ant, Maven и Gradle, переход от Java SE к Java EE.

При изучении курса используется платформа Java Standard Edition 11 (Java SE11), среды разработки NetBeans и IntelliJ IDEA.

Слушатели научатся работе в интегрированной среде разработки NetBeans и IntelliJ IDEA Community Edition, выполнят лабораторные работы.

Гибкая структура курса охватывает различные аудитории: от начинающих изучение языка Java программистов, до профессиональных С++ разработчиков, желающих расширить свои знания в предлагаемом аспекте.

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

Модуль 1. Введение в Java, обзор платформ и технологий. Функциональные связи.

Введение в Java. История создания. Преимущества.
Java Standard Edition 11 (Java SE11). Новые возможности.

Модуль 2. Синтаксис Java

Словарь Java.
Примитивные и объектные типы в Java.
Операторы.
Управляющие структуры.
История развития языка, нововведения от JDK 1.5 до последней редакции.

Модуль 3. Объектно-ориентированное программирование (OOP) в Java

Процедурное и объектно-ориентированное программирование. Инкапсуляция.
Объекты и объектные переменные. Сборка мусора.
Пакеты. Уровни видимости классов. Импорт классов.
Введение в NetBeans и IntelliJ IDEA.
Документирование кода в Java. Javadoc.

Модуль 4. Наследование и полиморфизм, базовый класс Object

Построение иерархии классов. Диаграммы классов UML.
Методы. Модификаторы. Передача примитивных типов в методы.
Локальные и глобальные переменные.
Модификаторы доступа и правила видимости. Зарезервированное слово this.
Передача ссылочных типов в методы.
Наследование. Суперклассы и подклассы. Переопределение методов.
Наследование и правила видимости. Зарезервированное слово super.
Статическое и динамическое связывание методов. Полиморфизм.
Базовый класс Object.
Конструкторы. Зарезервированные слова super и this.
Блоки инициализации.
Удаление неиспользуемых объектов и метод finalize.
Проблема деструкторов для сложно устроенных объектов.
Перегрузка методов.
Правила совместимости ссылочных типов. Приведение и проверка типов.
Рефакторинг.
Реверс-инжиниринг.

Модуль 5. Интерфейсы в Java

Проблемы множественного наследования классов. Интерфейсы.
Отличия интерфейсов от классов. Наследование интерфейсов.
Пример использования интерфейсов.
Композиция как альтернатива множественному наследованию.
Модуль 6. Встроенные классы

Вложенные (Nested) классы.
Внутренние (Inner) классы.
Локальные (local) классы.
Анонимные (безымянные) классы и обработчики событий.

Модуль 7. Исключения в Java

Система исключения в Java.
try-with-resources: нововведения JDK 1.7.
Assertions или проверка утверждений.

Модуль 8. Основные пакеты и интерфейсы Java

Обзор основных пакетов Java.
Массивы в Java.
Классы String, StringBuffer, StringBuilder, StringTokenizer.
Классы ввода-вывода. Файловый ввод-вывод.

Модуль 9. Generics или настраиваемые классы в Java

Понимание настраиваемых классов или Generics.
Написание кода, поддерживающего Generics.

Модуль 10. Коллекции в Java

Интерфейс Collections.
Практическое применение Generics.

Модуль 11. Аннотации в Java

Понимание аннотаций.
Создание собственных аннотаций.
Обработка аннотаций.

Модуль 12. Улучшения языка java, появившиеся в JDK1.5 - 1.9

Автоматическая упаковка и распаковка.
Перечислимый тип enum.
Улучшенные языковые конструкции (циклы for).
Аргументы переменной длинны.
Изменения в интефейсах.
Класс Optional.
Литералы коллекций.
Изменения в try-with-resources.

Модуль 13. Лямбда-выражения, функциональные интерфейсы и Streaming API в JDK 1.8

Понимание лямбда-выражений в java, функциональные интерфейсы.
Новый Streaming API.
Практическое применение.

Модуль 14. Загрузчики классов в Java и API Reflection

Порядок действий VM при загрузке класса.
Способы загрузки классов.
Создание собственного загрузчика классов.
Пример создания загрузчика зашифрованных классов.
Загрузка классов методом forName (…).
Создание объектов класса Class.
Исследование объекта.
Класс java.lang.reflect.Method. Пример приложения.
Компилирование исходного текста из приложения Java. Пример.
Выгрузка и Перезагрузка Классов. Пример приложения.
Приложение RunItReload , выгружающее и загружающее классы.
Загрузка классов через Сеть. Класс URLClassLoader.

Модуль 15. Сериализация Java-объектов

Что такое Сериализация и где применяется.
Как сериализация может использоваться в RMI.
Автоматическая сериализация. Интерфейс Serilizable .Пример.
Сериализация с применением интерфейса Externalizable. Пример.
Восстановления объекта и Reflection. Пример приложения.
Управление сериализацией посредством transient. Пример приложения.
Альтернатива Externalizable – методы writeObject() и readObject().
Сериализация static членов классов.
Глубокое клонирование объектов через сериализацию. Пример с Reflection.

Модуль 16. Введение в многопоточное программирование

Введение в многопоточную архитектуру.
Базовые классы для работы с потоками – класс Thread, интерфейс Runnable.
Синхронизация, Блокировки.

Модуль 17. Введение в сетевое программирование

Введение в сетевое программирование, сокеты.
Классы Soket и ServerSocket, написание простого сетевого клиента и сервера.

Модуль 18. Модульная структура java приложений в JDK 1.9

Понимание модульной структуры приложений в java 11.

Модуль 19. Сборка Java программ: Ant, Maven и Gradle

Сборка java-проектов при помощи средств Ant, Maven и Gradle.

Модуль 20. От Java SE к Java EE

Знакомство с платформой Java EE, понимание взаимосвязей с Java SE, новые возможности Java EE8.

В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.