Java programming, like all computer programming, requires a dedication to learning and the right study tools. As a Java programmer, I have spent years reading various books on every aspect of Java and analyzing Sun's implementation of it to gain insight into its design philosophies. The Java programming books I have read vary in detail and approach, but something very important is missing.
Several years back, when I was deep into Windows programming, I read Don Box's Essential COM, which changed my standards for programming books. COM is a difficult subject to understand, let alone master, but Don's approach was quite different from any other book on the market. He started from the foundation and derived COM feature-by-feature so that the reader truly understood why each design decision was made. By the end of the first chapter I looked at COM from a completely different perspective: It was no longer a crazy mystery, but everything suddenly made sense. Then, when learning the more advanced features of the language, it was just adding details to build on a firmly established foundation.
I have not read a Java book that has taken this approach, which is what differentiates Java 2 Primer Plus from any other book. Instead of simply teaching the reader how to write Java programs, every effort has been made to teach the reader why the language is the way it is. The book also explores the underlying design decisions Java's originators made when creating the language. The goal, therefore, is for the reader to walk away from this book with a solid foundation in the Java programming language so, as new technologies evolve, the reader can easily add the details to his firmly established foundation.