
ОЦІНКА КУРСУ
загальна оцінка курсу:оцінка викладача:
хочу знижку
Наша взаимовыгодная связь https://banwar.org/
Java SE 8 являє найглибші зміни в мові Java і бібліотеках з моменту виникнення. Доброю новиною є те, що ці зміни дозволять Вам писати програми легше. Java 8 пропонує новий інтерфейс прикладного програмування - API (Streams API), який підтримує безліч паралельних операцій обробки даних і допомагає вам думати про них в уявленнях схожих на запити до бази даних. Зміна програмування в Java на функціональний стиль допоможе Вам писати код, який є коротшим і виразним, і (у багатьох випадках) готовим до використання в паралельній середовищі. У цьому курсі, ви дізнаєтеся, як, здавалося б, незначні зміни, які вводять лямбда-вирази роблять це можливим.
Після вивчення курсу ви зможете
- Застосовувати лямбда-вирази (lambda expressions).
- Використовувати методи інтерфейсів за замовчуванням (default interface methods).
- Включати в код посилання на методи (method references) і повторювані анотації (repeatable annotations).
- Вбудовувати нові конкурентні функції лямбда-виразів.
- Працювати з новими можливостями API для роботи з датами: Java Date і Time API.
- Використовувати середу Nashorn JavaScript.
зміст курсу
Модуль 1: Введення в лямбда-вирази.- Мета використання анонімного внутрішнього класу.
- Недоліки анонімних внутрішніх класів.
- Компоненти лямбда-вирази.
- Функціональний інтерфейс.
- Створення програм, що використовують лямбда-вирази.
- Лабораторна робота: Введення в лямбда-вирази.
Модуль 2: Рефакторинг коду для використання лямбда-виразів.
- Причини додавання лямбда-виразів в мову Java.
- Рефакторинг коду для зменшення надмірності.
- Рефакторинг коду при використанні внутрішніх класів.
- Рефакторинг коду при використанні лямбда-виразів.
- Список переваг лямбда-виразів.
- Лабораторна робота: Рефакторинг коду при використанні лямбда-виразів.
- Лабораторна робота: Рефакторинг коду для повторного використання лямбда-виразів.
Модуль 3: Фільтрація колекцій за допомогою лямбда-виразів.
- Ітерації по колекції за допомогою forEach.
- Ітерації по колекції за допомогою лямбда-виразів.
- Опис інтерфейсу Stream.
- Фільтрація колекції з використанням лямбда-вирази.
- Виклик існуючого методу з використанням посилання на метод.
- Зчеплення декількох методів разом.
- Порівняння функціонального і імперативного програмування.
- Визначення конвеєрів в термінах лямбда-виразів і колекцій.
- Лабораторна робота: Використання Streams API.
- Лабораторна робота: Використання зчеплення декількох методів.
Модуль 4: Використання вбудованих інтерфейсів в лямбда-виразах.
- Список вбудованих інтерфейсів, включених в java.util.function.
- Використання інтерфейсу Predicate.
- Обробка об'єкта за допомогою інтерфейсу Consumer.
- Обробка одного об'єкта і повернення іншого за допомогою інтерфейсу Function.
- Створення нового об'єкта за допомогою інтерфейсу Supplier.
- Використання примітивних версій базових інтерфейсів.
- Використання бінарних версій базових інтерфейсів.
- Лабораторна робота: Використання вбудованих інтерфейсів в лямбда-виразах.
Модуль 5: Операції з колекціями в лямбда-виразах.
- Витяг даних з об'єкта з використанням відображення (map).
- Виявлення даних з використанням методів пошуку.
- Опис типів потокових операцій.
- Визначення класу Optional.
- Виконання розрахунків з використанням методів.
- Опис відкладеної обробки.
- Сортування в потоці.
- Збереження результатів в колекцію за допомогою методу collect.
- Лабораторна робота: Операції з колекціями в лямбда-виразах.
Модуль 6: Паралельні потоки.
- Огляд ключових характеристик потоків.
- Порівняння старого стилю циклічних операції з потоками.
- Опис паралельного виконання потокового процесу.
- Список основних умов використання паралельних потоків.
- Визначення редукції (reduction).
- Асоціативна функція при редукції.
- Обчислення значення при редукції.
- Опис процесу декомпзіціі і об'єднання при завершенні.
- Лабораторна робота: Паралельні потоки.
Модуль 7: Приклади застосування лямбда-виразів
- Зміна списку з використанням removeIf.
- Оновлення списку з використанням ReplaceAll.
- Оновлення map (відображення) за допомогою computeIfAbsent, computeIfPresent і merge.
- Відправка ключів і значень з map в s tream.
- Читання файлу в потік.
- Читання текстового файлу в ArrayList.
- Список, прохід і пошук по структурі каталогів за допомогою потоку.
- Зведення потоку за допомогою flatMap.
- Лабораторна робота: Приклади застосування лямбда-виразів.
Модуль 8: Розширення методів.
- Побудова якісних бібліотек.
- Використання статичних методів в інтерфейсах.
- Використання методів за замовчуванням.
- Правила спадкування для методів за замовчуванням.
- Лабораторна робота: Розширення методів.
- Лабораторна робота: Використання статичних методів в інтерфейсах.
- Лабораторна робота: Використання статичних методів і методів за умовчанням в інтерфейсах.
Модуль 9: Використання DateTime API.
- Список цілей Date / Time API (JSR-310).
- Створення та управління подіями на основі дати.
- Створення та управління подіями на основі часу.
- Комбінування дати і часу в одному об'єкті.
- Лабораторна робота: Робота з локальними датами і часом.
Модуль 10: JavaScript на Java з використанням Nashorn.
- Створення та виконання сценаріїв shell.
- Написання додатків JavaScript.
- Написання JavaFX додатків за допомогою JavaScript.
- Лабораторна робота: Використання JavaScript у середовищі Nashorn.
слухачі
Розробники java додатків, що використовують Java SE 8.
попередня підготовка
Знання в обсязі курсу "Основи програмування на мові Java" або аналогічний практичний досвід.
ВИПАДКОВІ ПИТАННЯ З КУРСУ
перевірити