I have learned many languages, and have dealt with some pretty bad text-books in my career, but this one has to be the worst ever. For a beginner, with no prior training in computer-programming, this book is at best confusing, at worst, useless.
The idea, to start people off immediately with the big picture and hands-on programming sounds wonderful, unfortunately, it doesn't work. At least not in this book. Unless you know Java (or another programming-language) already, the book is far more confusing than helpful. For the beginner, the concept and progression of the book means that you continuously play a guessing-game with the author, seeing that there are next to no concise definitions of any terms or concepts, and nowhere to look up any such definitions.
Granted, there are boxes with Java Language Rules and Programming and Debugging tips sprinkled throughout the pages. These should be helpful, but unfortunately, there is not even close to a "rule-box" for every important concept (assuming that the list of Technical terms at the end of each chapter is an important concept to know).
I could rant on, but the bottom line is : This book lacks everything that could make it useful for a beginner, and if it was possible to rate it to no stars at all, I would. In this, the prize plays a part too. Paying close to 30 £ for a paper-back that falls apart when you actually read it, and which is impossible to use as a reference-book, is far too much.
... oh, and in case you wonder where I come from, I read and work with 14+ natural languages in 5+ alphabets, living and dead, and have taught quite a few of them on post-graduate level.