Amazon wrote:The introduction of functional programming concepts in Java SE 8 was a drastic change for this venerable object-oriented language. Lambda expressions, method references, and streams fundamentally changed the idioms of the language, and many developers have been trying to catch up ever since. This cookbook will help. With more than 70 detailed recipes, author Ken Kousen shows you how to use the newest features of Java to solve a wide range of problems.

“Modern Java Recipes” assumes you know some version of Java. If you've never used Java 8 before, it's a fast paced introduction that focuses on the parts you are likely to use. If you have used Java 8 before, it helps you learn more deeply along with understanding idioms and when to best apply various techniques.

The book also covers key parts of Java 9. It was published while there was still uncertainty about what Java 9 was going to launch with. Conveniently for Ken, what was released for Jigsaw matches what he covered in the book! The intro to Jigsaw/modules is just the basics. The other features are smaller so able to be covered completely.

I've been using Java 8 for a few years and still managed to learn some new APIs and techniques like codepoints. I like how Ken shows the primitive streams and uses at the same time he introduces the interfaces. I also learned that I've been writing resource leaks calling Files.lines() for years. Never thought to use try-wth-resources around it. Oops. And I was reminded to use Function.compose() andThen().

I like that Ken uses JUnit to illustrate some concepts. There was one place I wanted him to use assertSame instead of assertTrue. I mention this because that was the only thing I disagreed with in the whole book and it's pretty minor (and not about Java 8/9 anyway!) One other minor complaint. The book mentions that @SafeVarargs is described in the appendix but I couldn't find it there.

I give this book 10 out of 10 horseshoes.

---
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.