BT
x Share your thoughts on trends and content!

Book Review: All About Java 8 Lambdas

Posted by Alex Blewitt on Mar 08, 2016 |

 

All About Java 8 Lambdas as a title doesn’t do the book justice. In fact, it contains a plethora of information about new features that have been added to Java 8, which includes lambdas, but also much, much more. The book is described as a “Weekend Read”, and at a little over 150 pages is certainly svelte enough to do so.

The book’s contents are split up into 14 chapters, with the first third covering lambdas. The middle third looks at predicates and the functional interface type and functional composition. The remaining third is dedicated to streams and stream processing, including parallel and sequential processes, using the lambdas and functions seen so far. Together, the chapters dovetail nicely together and also demonstrate some of Java 8’s other features, such as static and default methods on interfaces as well as method and constructor references.

The chapters themselves are well thought out and logical, interspersed as they are with examples and code snippets that back up the book’s GitHub repository. In fact, almost all pages have at least some code samples on them, and the surrounding text explains what that particular snippet does.

The reader is exposed to some types of new syntax right from the start; the introductory chapter explains the purpose of lambdas and demonstrates both in-line lambdas and method references. It then spends the next few chapters dissecting the examples with a more precise treatment of the syntax and the special cases that may apply.

The book’s coverage of functional programming starts off with an introduction to the purpose of functions and the FunctionalInterface annotation. It then introduces more specific types such as Predicate, Consumer, Supplier and BiFunction, along with examples of each. Although the author could have stopped here, he kept going and showed how to chain functional results together and use them to build up chains of processing.

The book them moves to its final section covering streams, including how to map and flatMap functions and processes onto streamed collections, including how efficient streams of primitive types are compared with their object-oriented friends.

Coverage of streams then moves into optional types, and how they can be chained/mapped, as well as the grouping operations that allow streams of data to be cut up and pivoted based on a particular desired data structure.

Finally, there is some discussion of the differences between processing streams sequentially and in parallel, and provides some advice as to what types of processing this is amenable to or otherwise.

Although this book claims to just talk about lambdas, it covers much that is new to Java 8. What it doesn’t talk about are some of the new APIs such as the java.time package; but that’s not promised nor delivered in the book. However, the book does cover all of the syntax changes to the Java language, along with the new APIs in the java.util.function packages.

The only thing that is missing in the book is an index. If you have an electronic copy this may not be as relevant, since you can search through to find the reference that you’re looking for; but if you’re buying the paper copy then the chapter index at the beginning is the only cross-referencing you will find. Fortunately the chapters are sufficiently short and the internal headings make finding things relatively easy when you need to find something, provided that you can locate the right starting point of the chapter.

If you only have a weekend to pick up what’s new in the Java 8 language, this weekend read is a great start.

About the Book Author

Madhusudhan Konda -  I am a Java Developer working in London, primarily with investment banks and financial organisations. I have been working on Java platform for over 15 years. Started as a C / C++ Programmer, I have quickly learned Java while studying my Masters at IIT Kharagpur, India. I instantly fell in love with the language and never looked back. 

Rate this Article

Relevance
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
General Feedback
Bugs
Advertising
Editorial
Marketing
InfoQ.com and all content copyright © 2006-2016 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT

We notice you're using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.