Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 637335)
Контекстум
Электро-2024

Лямбда-выражения в Java 8. Функциональное программирование — в массы (2000,00 руб.)

0   0
Первый авторУорбэртон
ИздательствоМ.: ДМК Пресс
Страниц194
ID836213
АннотацияЕсли вы имеете опыт работы с Java SE, то из этой книги узнаете об изменениях в версии Java 8, обусловленных появлением в языке лямбда-выражений. Вашему вниманию будут представлены примеры кода, упражнения и увлекательные объяснения того, как можно использовать эти анонимные функции, чтобы сделать код проще и чище, и как библиотеки помогают в решении прикладных задач. Лямбда-выражения — относительно простое изменение в языке Java, в первой части книги показано, как правильно ими пользоваться. В последующих главах демонстрируется, как лямбда-выражения позволяют повысить производительность программы за счет распараллеливания, писать более простой конкурентный код и точнее моделировать предметную область, в том числе создавать более качественные предметно-ориентированные языки. Издание предназначено для программистов разной квалификации, как правило уже работающих с Java, но не имеющих опыта функционального программирования.
ISBN978-5-89818-337-0
Уорбэртон, Р. Лямбда-выражения в Java 8. Функциональное программирование — в массы / Р. Уорбэртон .— Москва : ДМК Пресс, 2023 .— 194 с. — ISBN 978-5-89818-337-0 .— URL: https://rucont.ru/efd/836213 (дата обращения: 02.06.2024)

Предпросмотр (выдержки из произведения)

Лямбда-выражения_в_Java_8._Функциональное_программирование_—_в_массы.pdf
УДК 004.432.42Java 8 ББК 32.973.26-018.1 У62 У62 Уорбэртон, Ричард. Лямбда-выражения в Java 8. Функциональное программирование — в массы / Р. Уорбэртон ; пер. с англ. А. А. Слинкина. — 2-е изд., эл. — 1 файл pdf : 194 с. — Москва : ДМК Пресс, 2023. — (Функциональное программирование). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-337-0 Если вы имеете опыт работы с Java SE, то из этой книги узнаете об изменениях в версии Java 8, обусловленных появлением в языке лямбда-выражений. Вашему вниманию будут представлены примеры кода, упражнения и увлекательные объяснения того, как можно использовать эти анонимные функции, чтобы сделать код проще и чище, и как библиотеки помогают в решении прикладных задач. Лямбда-выражения — относительно простое изменение в языке Java; в первой части книги показано, как правильно ими пользоваться. В последующих главах демонстрируется, как лямбда-выражения позволяют повысить производительность программы за счет распараллеливания, писать более простой конкурентный код и точнее моделировать предметную область, в том числе создавать более качественные предметно-ориентированные языки. Издание предназначено для программистов разной квалификации, как правило уже работающих с Java, но не имеющих опыта функционального программирования. УДК 004.432.42Java 8 ББК 32.973.26-018.1 Электронное издание на основе печатного издания: Лямбда-выражения в Java 8. Функциональное программирование — в массы / Р. Уорбэртон ; пер. с англ. А. А. Слинкина. — Москва : ДМК Пресс, 2014. — 192 с. — (Функциональное программирование). — ISBN 978-5-94074919-6. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-337-0 © 2014 Richard Warburton © Оформление, перевод, ДМК Пресс, 2014
Стр.5
Содержание Об авторе ............................................................................................................9 Предисловие..................................................................................................10 Глава 1. Введение ......................................................................................16 Зачем понадобилось снова изменять Java? ................................................16 Что такое функциональное программирование? ....................................18 Пример предметной области ...........................................................................18 Глава 2. Лямбда-выражения ............................................................20 Наше первое лямбда-выражение ...................................................................20 Как опознать лямбда-выражение ..................................................................21 Использование значений .................................................................................23 Функциональные интерфейсы .......................................................................24 Выведение типов .................................................................................................26 Основные моменты ............................................................................................29 Упражнения ..........................................................................................................29 Глава 3. Потоки ............................................................................................31 От внешнего итерирования к внутреннему ...............................................31 Что происходит на самом деле .......................................................................34 Наиболее распространенные потоковые операции ................................36 collect(toList()) .............................................................................................36 map ....................................................................................................................37 filter ...................................................................................................................38 flatMap .............................................................................................................39 max и min ........................................................................................................40 Проявляется общий принцип .................................................................41 reduce ...............................................................................................................43 Объединение операций .............................................................................44 Рефакторинг унаследованного кода .............................................................46 Несколько потоковых вызовов ......................................................................49 Функции высшего порядка .............................................................................50 Полезное применение лямбда-выражений ................................................51 Основные моменты ............................................................................................52
Стр.6
6  Содержание Упражнения ..........................................................................................................53 Упражнения повышенной сложности .........................................................54 Глава 4. Библиотеки ................................................................................55 Использование лямбда-выражений в программе ....................................55 Примитивы ............................................................................................................57 Разрешение перегрузки ....................................................................................59 Аннотация @FunctionalInterface ...................................................................61 Двоичная совместимость интерфейсов .......................................................62 Методы по умолчанию ......................................................................................63 Методы по умолчанию и наследование ...............................................64 Множественное наследование ........................................................................67 Три правила ...................................................................................................68 Компромиссы .......................................................................................................69 Статические методы в интерфейсах .............................................................70 Тип Optional ..........................................................................................................70 Основные моменты ............................................................................................72 Упражнения ..........................................................................................................72 Задача для исследования..................................................................................74 Глава 5. Еще о коллекциях и коллекторах ............................75 Ссылки на методы...............................................................................................75 Упорядочение элементов ..................................................................................76 Знакомство с интерфейсом Collector ...........................................................78 Порождение других коллекций ..............................................................79 Порождение других значений .................................................................80 Разбиение данных .......................................................................................81 Группировка данных ...................................................................................82 Строки .............................................................................................................83 Композиция коллекторов .........................................................................84 Рефакторинг и пользовательские коллекторы .................................86 Редукция как коллектор ...........................................................................94 Усовершенствование интерфейса коллекций ...........................................95 Основные моменты ............................................................................................96 Упражнения ..........................................................................................................97 Глава 6. Параллелизм по данным ................................................98 Параллелизм и конкурентность .....................................................................98 Почему параллелизм важен? ....................................................................... 100 Параллельные потоковые операции.......................................................... 101
Стр.7
Содержание  7 Моделирование ................................................................................................. 102 Подводные камни............................................................................................. 106 Производительность ....................................................................................... 107 Параллельные операции с массивами ...................................................... 110 Основные моменты ......................................................................................... 112 Упражнения ....................................................................................................... 113 Глава 7. Тестирование, отладка и рефакторинг ........... 114 Когда разумно перерабатывать код с использованием лямбда-выражений .......................................................................................... 114 Инкапсуляция внутреннего состояния ............................................ 115 Переопределение единственного метода ......................................... 116 Поведенческий паттерн «пиши все дважды».................................. 117 Автономное тестирование лямбда-выражений ..................................... 120 Использование лямбда-выражений в тестовых двойниках .............. 123 Отложенное вычисление и отладка ........................................................... 125 Протоколирование и печать ......................................................................... 125 Решение: метод peek ........................................................................................ 126 Точки останова в середине потока ............................................................. 127 Основные моменты ......................................................................................... 127 Глава 8. Проектирование и архитектурные принципы ....................................................................................................... 128 Паттерны проектирования и лямбда-выражения ................................ 129 Паттерн Команда ...................................................................................... 130 Паттерн Стратегия ................................................................................... 133 Паттерн Наблюдатель ............................................................................. 136 Паттерн Шаблонный метод .................................................................. 139 Предметно-ориентированные языки с поддержкой лямбда-выражений .......................................................................................... 143 Предметно-ориентированный язык на Java .................................... 144 Как это делается ........................................................................................ 145 Оценка .......................................................................................................... 148 Принципы SOLID и лямбда-выражения................................................. 148 Принцип единственной обязанности ................................................ 149 Принцип открытости-закрытости ...................................................... 152 Принцип инверсии зависимости......................................................... 155 Что еще почитать ............................................................................................. 159 Основные моменты ......................................................................................... 160
Стр.8
8  Содержание Глава 9. Конкурентное программирование и лямбда-выражения ........................................................................... 161 Зачем нужен неблокирующий ввод-вывод? ........................................... 161 Обратные вызовы ............................................................................................. 162 Архитектуры на основе передачи сообщений ........................................ 167 Пирамида судьбы ............................................................................................. 168 Будущие результаты ....................................................................................... 171 Завершаемые будущие результаты ............................................................ 173 Реактивное программирование ................................................................... 177 Когда и где .......................................................................................................... 180 Основные моменты ......................................................................................... 181 Упражнения ....................................................................................................... 181 Глава 10. Что дальше? ........................................................................ 183 Алфавитный указатель ...................................................................... 185
Стр.9

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст