
Rarely, I want to purchase a book I've read as a hard copy. I wanted to buy this book badly.
Only after checking the cost of this book in Poland I realized that at a price of yearly subscription to Safari Books buying a huge pile of dead wood is not wise enough for me.
I had a huge gap in my Java experience due to the fact that I've made a switch to Scala and then to other languages most of them had nothing to do with JVM. Javascript, Ruby, Python, GO... you name it, I was paid to write in it mostly thanks to my employers' kindness and not because of any particularly need. The main reason why I've switched from Java to Scala was that the latter felt much sexier with lots of syntactic sugar and nice FP abstractions that felt much closer than the monstrosity I often saw in the java projects I wad to work on. Did I also mention that one of the first programming languages I've learned was LISP? Functional programming was a big part of my education.
And then after all these years I started to see a gradual change in the way way how the Java code is written that felt similar to Scala but without the complexity that it had. Especially, after loosing all my illusions with GO I decided to give new Java a try. I played a bit with streams and lambdas, but neither could I understand how their worked nor use them efficiently.
This book allowed me to fill this gap. If you're coming from Java 6 & 7 this book is a must for you. Lots of example, datailed explanations with multiple peeks under the covers of JVM.
The only minor issue is that after changing the release policy Java went quite far from the changes that are described in this book. Too bad this book isn't updated after every new Java version goes GA
My score 5/5