This book was written by a person that truly did not understand the finer points of java. He didn't even understand by ref or by val parameter passing. I'll quote the top rated amazon review: (it's a 1 star)
In the preface, the author states that the goal of this book is to transform a developer from the intermediate level to a true guru. In the back cover it even promises that "you'll master the art of writing error-prone (sic!) code", and the reference to "error-prone code" sadly finds its confirmation once one starts reading.
It takes about two chapters to demolish the author's credibility as a guru, and you will be reading the rest of the book with a skeptical eye, doubting every assertion that looks questionable and suspecting that the author is talking well above his level of competence, and patronizing about it too!
The first chapters are an atrocious review of some Java concepts, densely packed with serious mistakes, not typos, mistakes (plenty of typos too).
As an example, on page 9 the definition of the `for' statement is wrong, a simple check of the Java Language Specification would have spared the author some embarrassment.
On page 15 the author gives us wrong rules for labels in Java, and in the same page he confuses the logic of the 'break' and 'continue' statements, providing also a logically wrong code example, just to screw-up things even better.
I would not know how to describe the section on "Chained deferred initialization" on page 53, "raving" maybe. This one is cited in the errata page at oreilly.com, and the "author regrets that it slipped through the proverbial cracks". I am more concerned that something like that has been actually written (complete with code samples!), than that it has passed unscathed through editing and reviewing. Let's hope it was written by somebody else playing with the author's laptop. Somebody who does not know what JVM means.
There are also less severe but equally confidence-abating points, like, on page 25, the form:
new String("A button to show" + text);
which we should not find in books for guru wannabes.
The author is probably a productive software architect, some points, later in the book, are interesting, though nothing could be defined advanced, but he does not know Java better than an average developer, and this book does not add very much to an intermediate level, apart, maybe, from a warning about writing books: writing a book can transform you from a good developer into a bad author.
It is sad that we are flooded with such mediocre and unprofessional "error-prone"publications from such once reputable publishers, from time to time I still re-read and enjoy the conciseness, clarity and value of classics like K&R's "The C Programming Language" and I wonder why today's output is so vastly inferior.
As one of the few exceptions, I strongly recommend Bloch's "Effective Java" (Addison-Wesley) which is truly a book written by a guru. After reading that one, "Hardcore Java" will seem even emptier.
edit: just checked it, default settings in word, it's 23 pages long.