Сетевая Академия ЛАНИТ-ТИССА Казань
+7 (843) 533-39-21
+7 (917) 898-94-26
  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
  Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Java 8. Новые возможности

2Java8NF

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.
  • Фильтрация коллекции с использованием лямбда-выражения.
  • Вызов существующего метода с использованием ссылки на метод.
  • Сцепление нескольких методов вместе.
  • Сравнение функционального и императивного программирования.
  • Определение конвейеров в терминах лямбда-выражений и коллекций.

Модуль 4: Использование встроенных интерфейсов в лямбда-выражениях.

  • Список встроенных интерфейсов, включенных в java.util.function.
  • Использование интерфейса Predicate.
  • Обработка объекта с помощью интерфейса Consumer.
  • Обработка одного объекта и возврат другого с помощью интерфейса Function.
  • Создание нового объекта с помощью интерфейса Supplier.
  • Использование примитивных версий базовых интерфейсов.
  • Использование бинарных версий базовых интерфейсов.

Модуль 5: Операции с коллекциями в лямбда-выражениях.

  • Извлечение данных из объекта с использованием отображения (map).
  • Обнаружение данных с использованием методов поиска.
  • Описание типов потоковых операций.
  • Определение класса Optional.
  • Выполнение расчетов с использованием методов.
  • Описание отложенной обработки.
  • Сортировка в потоке.
  • Сохранение результатов в коллекцию с помощью метода collect.

Модуль 6: Параллельные потоки.

  • Обзор ключевых характеристик потоков.
  • Сравнение старого стиля циклических операции с потоками.
  • Описание параллельного выполнения потокового процесса.
  • Список основных условий использования параллельных потоков.
  • Определение редукции (reduction).
  • Ассоциативная функция при редукции.
  • Вычисление значения при редукции.
  • Описание процесса декомпзиции и объединения при завершении.

Модуль 7: Примеры применения лямбда-выражений.

  • Изменение списка с использованием removeIf.
  • Обновление списка с использованием ReplaceAll.
  • Обновление map (отображение) с помощью computeIfAbsent, computeIfPresent и merge.
  • Отправка ключей и значений из map в stream.
  • Чтение файла в поток.
  • Чтение текстового файла в ArrayList.
  • Список, проход и поиск по структуре каталогов при помощи потока.
  • Сведение потока с помощью flatMap.

Модуль 8: Расширения методов.

  • Построение качественных библиотек.
  • Использование статических методов в интерфейсах.
  • Использование методов по умолчанию.
  • Правила наследования для методов по умолчанию.

Модуль 9: Использование DateTime API.

  • Список целей Date/Time API (JSR-310).
  • Создание и управление событиями на основе даты.
  • Создание и управление событиями на основе времени .
  • Комбинирование даты и времени в одном объекте.

Модуль 10: JavaScript на Java с использованием Nashorn.

  • Создание и выполнение сценариев shell.
  • Написание приложений JavaScript.
  • Написание JavaFX приложений с помощью JavaScript.

Слушатели

Разработчики java приложений, использующие Java SE 8.

Продолжительность: 2 дн.
Цена: 11000 р.