Just as software development is an iterative process in which an application is never truly `done,` the education of a developer should continue for years. You can use
Hardcore Java as a guide to the transition from novice Java programmer to journeyman, or as a map to parts of the language you haven't explored (or explored adequately) in your development work to date. Because of those design goals, this book is something of a catch-all, covering about a dozen general topics ranging from exception-handling to nested classes (and interfaces!) and the reflection API. The coverage clearly derives from the author's `lessons learned` notes, and they're rich with information. If nothing in this book surprises you, you're probably very experienced with Java.
In addition to this book's tutorial function, Hardcore Java puts forth and defends a number of opinions about the design and style of Java software. One example: After explaining how bit fields work--bit fields aren't widely used in Java programming, and their advantages may be interesting to some programmers--Robert Simmons points out that they're inherently limited in their ability to contain data, and that this can cause problems. This is the kind of design tradeoff that more advanced Java programmers have to consider, and Simmons does the Java community a service by showing programmers how to think critically about the capabilities of their language. --David Wall
Topics covered: Advanced Java topics, including final constants, collections, exception handling, and nested classes. There's a useful bit about getting customers to help you design the data models they need, and very extensive coverage of reflection.
User review
Hardcore? Hardly.
I usually don't participate in these reviews, except to read them, and I wish I'd read some before buying this book. As a hardcore C++ programmer and moderately accomplished Java programmer, the title lead me to believe I would be getting something along the lines of what Myers and Sutter did for C++. I was sadly dissapointed. While there are a few nuggets in the text, it is also filled with errors and bad advice. Proposing not using anonymous inner classes because they're `not mainstream` and `hard to read`, and more telling `not object oriented`, tells me the author needs to do a more thorough research before writing his next book. Any technique, when abused or misused can produce bad code, however anonymous inner classes is an elegant solution to a particular problem set, and should be encouraged in those areas, not broadly poo-poo'd. Educate to the right uses, not discourage because `I find it hard to read`. This was the diatribe in the book that pushed me to write a review. If you get this book for free, and have a high tolerance level, there are one or two things to be taken from it, however if you are a novice Java programmer, seek input from someone senior before buying into many of the bad pieces of software engineering advice offered by this book.
User review
Good Book for Junior Java Developer
With all the criticism and found errors being correct, junior Java developer absolutely should not ignore this book.
Book is filled up with the good practical techniques and rules of the thumb described in a simple and effective manner. Some techniques, for example use of readResolve method in constant serialization, are explained better and in more practical manner than `Effective Java` does.
Real book's name should be `Practical Java development for beginners`
User review
don't buy if you're an experienced java programmer
No need to read this book if you already have some experience with Java in a moderate sized project. I could not find any exceptional knowledge and is a little advanced than an entry level book. Book does not live up to its promise.
User review
Intermediate Java by a peer
This book disappointed me. The title raised so high expectations. I started very enthusiastically to read the book and ended in wading through quite a mess.
The level of the book is intermediate, certainly not advanced.
The topics and treatment in this book are quite mixed in level and style. A little about the language itself (so I learned happily about the existence of labels in Java), a lot about the API (here I appreciated most the dynamic proxy and the reference package discussion) and even an entire chapter on design (which I did not like at all).
If you want to learn a little more about Java and have already read the top notch `Effective Java`, then this book is full of useful suggestions of areas for further exploration.
User review
Deep coverage, but not hardcore
The book's title is misleading. The book delves into some not-so-well-known aspects of Java. Unfortunately, the author's arrogant tone is distracting. I also don't agree with the word hardcore in the title. All in all, if you've only been working with Java for a few years, then this book will open your eyes.