Чему вы научитесь
- Слушатели познакомятся с наиболее значимыми нововведениями в современной Java и смогут применять полученные знания в своей повседневной работе и/или учебе.
О курсе
Курс предназначен для практического освоения рекомендуемых идиом, новых лексических конструкций и современных приемов написания Java-кода, предоставляемых очередными релизами Java-платформы.
Курс предполагает активное усвоение: в идеале слушатель, следя за видеолекциями, пишет код параллельно с инструктором.
Специфическая особенность данного курса в том, что он существует еще с 2019-го года (в ту пору хостился на платформах Udemy и Coursera), поэтому прошел апробацию и обкатку временем, помогая сотням и тысячам русскоязычных студентов осваивать современные подходы к разработке ПО на Java-платформе. С началом СВО вышеупомянутые зарубежные сервисы отказали россиянам и белорусам в доступе, поэтому автор курса перенес его на родную почву. Курс полностью бесплатен и таковым останется навсегда.
Содержимое учебной программы:
========= Сегмент 1-й: с 9-й версии до 11-й (~5 часов видеолекций) ========
Часть 1 — Модульная система (~3 часа видео)
- Подготовка учебной среды
- Причины для модуляризации
- Модульное приложение — работа с командной строки
- Модульное приложение — работа в среде NetBeans
- Ключевое слово requires — работа с командной строки
- Ключевое слово requires transitive — работа в среде Intellij IDEA
- Ключевое слово exports — работа с командной строки
- Ключевое слово exports to — работа в среде Eclipse
- Модуляризованный механизм загрузки служб на классе ServiceLoader; ключевые слова provides и with
- Безымянный модуль (Unnamed Module)
- Анализатор зависимостей jdeps
- Автоматические модули (Automatic Modules)
- Знакомство с Module API
- Генератор исполнимого образа приложения jlink
Часть 2 — REPL-инструмент JShell (~0,5 часа видео)
- Основные приемы работы
- Изменение дефиниций
- Форвардные ссылки
- Обработка исключений в JShell
- Полезные команды
- Работа с class path'ом и module path'ом
- Встроенные скрипты
- Стартовые скрипты
Часть 3 — Новый API и проч. (~1,5 часа видео)
- Приватные методы в интерфейсах
- Объявление локальной переменной через контекстно-зависимое ключевое слово var
- Усовершенствованный try-with-resources
- Немутирующие коллекции
- Ромбовидный оператор в анонимных внутренних классах
- Бескомпиляторный запуск приложения
- Знакомство с Process API
- Апдейты в интерфейсе Stream
- Апдейты в классе Optional
- Замена для депрецированной связки интерфейса Observer и класса Observable
========== Сегмент 2-й: продолжение (~2,5 часа видеолекций) ============
JDK9:
- Аннотация @SafeVarargs и приватные нестатические методы
- Запрет на символ подчеркивания '_' в качестве идентификатора
JDK14:
- switch-выражения
JDK15:
- Текстовые блоки
JDK16:
- Классы-рекорды (record classes)
- Pattern Matching для оператора instanceof
JDK17:
- Запечатанные классы (sealed classes)
JDK21:
- Pattern Matching для классов-рекордов
- Pattern Matching для switch-выражений
JDK22:
- Безымянные переменные
- Операторы до вызова super(...) [превью]
- Стринг-шаблоны [превью]
- Имплицитно задекларированные классы и нестатические методы main() [превью]
ПРИМ.: Хотя виртуальные подпроцессы (т.н. virtual threads) формально и не являются лексической конструкцией собственно языка Java, а относятся в первую очередь к имплементации JVM, из-за повышенного любопытства к этой теме в нашем курсе также имеется небольшой демо-ролик про virtual threads (чей офиц.релиз состоялся в JDK21).
Для кого этот курс
Начальные требования
Требуемый уровень подготовки:
Начальный — средний, т.е. в идеале человек должен быть знаком с базовым синтаксисом, наиболее востребованными классами стандартной библиотеки, обобщенными типами (Generics) и коллекциями; также настоятельно рекомендуется общее понимание приемов функционального и многопоточного программирования в Java.
Наши преподаватели
Как проходит обучение
Учебный материал курса состоит из видеолекций и кодового практикума.
На данный момент не предполагаются ни домашние задания, ни входное/выходное тестирование.
Программа курса
Что вы получаете
- Подробное и наглядное изложение как теоретического, так и практического кодового материала.
- Навыки рефакторинга существующего кода для перехода на современные, рекомендуемые идиомы и конструкции.
- Общее понимание вектора развития Java-платформы.