Pros:
- It does explain Java in a deep way. You get to know not only how, but why things work the way they do
- Clear examples, and authors kept them simple enough to follow
Cons:
- It is not exactly for beginners. More for people who know another programming language and migrate to Java. Authors assume a certain base knowledge of computer science and programming concepts. So if you are completely new, I wouldn't advise reading this book
- I have seen examples, but no exercises. So this more of a reference, than an actual book that is going to teach you how to program
I am a beginner, started Java about a month ago, and after reading all chapters up to Lambda expressions, decided it is not worth spending more time on reading, and focus more on building something. I will keep this book as a reference, and consult as a resource, which is hard to read, but is more digestible than Oracle documentation, and is still thorough.
Maybe after a couple of years, when I have more experience with the language, I will have another opinion, but for a beginner, it is an overkill.