Manning Early
Access Program
Java 8 in Action
Lambdas, Streams, and functional-style programming

EARLY ACCESS EDITION

Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft

MEAP Began: November 2013
Softbound print: August 2014 (est.) | 375 pages
ISBN: 9781617291999

Become a reviewer
Pre-Order options*
Order now and start reading Java 8 in Action today through MEAP                    
  MEAP + eBook only - $39.99
  MEAP + Print book (includes eBook) when available - $49.99
* For more information, please see the MEAP FAQs page.
  About MEAP Release Date Estimates     

Table of Contents, MEAP Chapters & Resources

Table of Contents         Resources 
PART I: FUNDAMENTALS
  1 Java 8: why should you care? - FREE
  2 Passing code with behavior parameterization - AVAILABLE
  3 Lambda expressions - AVAILABLE

PART II: FUNCTIONAL-STYLE DATA PROCESSING
  4 Processing data with streams - AVAILABLE
  5 Collecting data with streams - AVAILABLE
  6 Parallel data processing and performance - AVAILABLE

PART III: EFFECTIVE JAVA 8 PROGRAMMING
  7 Refactoring, testing, debugging - AVAILABLE
  8 Default methods - AVAILABLE
  9 Optional: a better alternative to null - AVAILABLE
10 CompletableFuture: composable asynchronous programming - AVAILABLE
11 New Date and Time API - AVAILABLE

PART IV: BEYOND JAVA 8
12 Thinking functionally - AVAILABLE
13 Functional programming techniques - AVAILABLE
14 Blending OOP and FP: comparing Java 8 and Scala - AVAILABLE
15 Conclusions and "where next" for Java - FREE

APPENDICES:
  A Miscellaneous language updates - AVAILABLE
  B Miscellaneous library updates - AVAILABLE
  C Performing multiple operations in parallel on a Stream - AVAILABLE
  D Lambdas and bytecode - AVAILABLE

DESCRIPTION

While the term "lambda expression" may sound abstract and academic, Java 8 Lambdas can have a big impact on how you program every day. In simplest terms, a lambda expression is a function—a bit of code—that you can pass to another method as an argument. Thus, you can cope with changing requirements by using a behavior, represented by a lambda, as a parameter. Java 8's functional programming features, like lambdas and the new Stream API that enables a cleaner way to iterate through collections, can help you write concise, maintainable code that scales easily and performs well on multicore architectures.

Java 8 in Action is a clearly-written guide to Java 8 lambdas and functional programming in Java. It begins with a practical introduction to the structure and benefits of lambda expressions in real-world Java code. The book then introduces the Stream API and shows how it can make collections-related code radically easier to understand and maintain. Along the way, you'll discover new FP-oriented design patterns with Java 8 for code reuse, code readability, exception handling, data manipulation, and concurrency. For developers also exploring other functional languages on the JVM, the book concludes with a quick survey of useful functional features in Scala.

What's Inside

Written for programmers familiar with Java and basic OO programming. No experience with Lambdas, functional programming, or Java 8 is required.

ABOUT THE AUTHORS

Raoul-Gabriel Urma has worked as a software engineer for Oracle's Java Platform Group, Google's Python team, Ebay, and Goldman Sachs as well as for several startup projects. He's currently completing a PhD in Computer Science at the University of Cambridge and is a regular speaker and instructor. 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.

You can follow Raoul and Mario on Twitter at @raoulUK and @mariofusco.

ABOUT THE EARLY ACCESS VERSION

This Early Access version of Java 8 in Action enables you to receive new chapters as they are being written. You can also interact with the authors to ask questions, provide feedback and errata, and help shape the final manuscript on the Author Online forum.

WANT TO LEARN MORE?

Sign up to read more content when it is released and to receive news about this book.