Modern Java in Action: Lambdas, Streams, Reactive and Functional Programming

  • 9h 45m
  • Alan Mycroft, Mario Fusco, Raoul-Gabriel Urma
  • Manning Publications
  • 2019

Manning's bestselling Java 8 book has been revised for Java 9 and Java 10! In Modern Java in Action, readers build on their existing Java language skills with the newest features and techniques.

The release of Java 9 builds on what made Java 8 so exciting. In addition to Java 8's lambdas and streams, Java 9 adds a host of new features of its own. It includes new library features to support reactive programming, which give users new ways of thinking about programming and writing code that is easier to read and maintain.

About the Authors

Raoul-Gabriel Urma is CEO and co-founder of Cambridge Spark, a leading learning community for data scientists and developers in UK. In addition, he is also Chairman and co-founder of Cambridge Coding Academy, a growing community of young coders and pre-university students. Raoul is author of the bestselling programming book "Java 8 in Action" which sold over 20,000 copies globally. Raoul completed a PhD in Computer Science at the University of Cambridge. In addition, he holds a MEng in Computer Science from Imperial College London and graduated with first class honours having won several prizes for technical innovation. Raoul has delivered over 100 technical talks at international conferences. He has worked for Google, eBay, Oracle, and Goldman Sachs. He is also a Fellow of the Royal Society of Arts.

Mario Fusco is a senior software engineer at Red Hat working on Drools, the JBoss rule engine. He created the open source library lambdaj, an internal Java DSL for manipulating collections in a functional way.

Alan Mycroft is Professor of Computer Science at the University of Cambridge, where he researches programming languages, their semantics, optimization and implementation. He is a co-founder and Trustee of the Raspberry Pi Foundation.

In this Book

  • About This Book
  • About the Cover Illustration
  • Java 8, 9, 10, and 11—What’s Happening?
  • Passing Code with Behavior Parameterization
  • Lambda Expressions
  • Introducing Streams
  • Working with Streams
  • Collecting Data with Streams
  • Parallel Data Processing and Performance
  • Collection API Enhancements
  • Refactoring, Testing, and Debugging
  • Domain-Specific Languages Using Lambdas
  • Using Optional as a Better Alternative to Null
  • New Date and Time API
  • Default Methods
  • The Java Module System
  • Concepts behind CompletableFuture and Reactive Programming
  • CompletableFuture—Composable Asynchronous Programming
  • Reactive Programming
  • Thinking Functionally
  • Functional Programming Techniques
  • Blending OOP and FP—Comparing Java and Scala
  • Conclusions and Where Next for Java