The book promises to explain the new Java 8 functional features in an example driven style. Rather than focusing on the theory, the author teaches how to apply the concepts in day-to-day tasks by example. It's intended for experienced Java developers without prior functional programming experience. Programmers interested in JVM languages like Scala, Clojure or Groovy who are now involved in Java projects can also benefit from this book. They can learn, how what they know translates to the specifics of the lambda expressions’ usage in Java.
The first three chapters focus more on API changes in Java. The first chapter talks about the specifics of lambda expressions in Java 8. Followed by a chapter about the changes in the collections library that added support for functional style operations. Followed by the third chapter which explains how to use Strings, Comparators and Filters in functional style. The next 5 chapters focus less on API changes and more on general functional design, composition and recursion. The last chapter titled "Bringing It All Together" ends the book with a few very well explained best practices. As the preface promised, the book isvery example driven with minimal functional programming theory. The examples are usually common use cases that are a lot more elegant using lambda expressions and the new Java 8 features (e.g. collection filtering). The chapters are clearly organized and the language used is simple and easy to understand.
My favorite part of the book was the first three chapters because the Java 8 API changes were the reason I chose this book. I don't have a least favorite part but because I was already familiar with functional programming from Scala, I found the second half of the book less intriguing than the first.
I would definitely recommend the book to anyone who wants to start with Java 8 with our without prior functional programming experience.