Wonderfully organized, full of high-quality examples, and polished to reflect today’s best practices, Bruce Eckel’s Thinking in Java, Third Edition may be the world's best way to learn Java.
Previous editions have earned worldwide praise and prizes -- notably the Java Developer's Journal Editor's Choice award, and Software Development's Productivity Award. This new Third Edition is the best yet. Yes, it fully reflects Sun’s recent Java 2 SDK 1.4 release. But if you’re accustomed to “run of the mill” programming books, you’ll be astounded at how much attention Eckel has given to improving the coverage of features that haven’t changed.
Among this book’s strengths have always been its structure and careful choice of topics. In this edition, Eckel thoroughly revisits both, to ensure that the book still give programmers a rock-solid grasp of today’s fundamentals. For instance, while most authors would’ve been thrilled with the multithreading coverage presented in earlier editions, Eckel has thoroughly rewritten this chapter (now renamed “Concurrency”) to offer far deeper insight for real-world development.
Even more important, Eckel has increasingly recognized the crucial role of unit testing for high-quality Java development. (Of course, he’s not the only one to realize this: Testing is at the heart of agile methodologies like Extreme Programming, which Eckel admires. Chances are you’ll be called upon to become much more actively involved in testing in coming days. This book will prepare you.)
With unit testing, Eckel points out, “the build process can check for more than just syntax errors, since you teach it how to check for semantic errors as well.” By integrating unit testing into the build process, you can “be bolder in the changes that you make, more easily refactor your code when you discover design or implementation flaws, and in general produce a better product, faster.”
To this end, Eckel has used unit testing throughout this edition to validate his code and display the expected output. (Much of that output now appears in the book, responding to one of the few criticisms made of earlier editions.)
As part of a detailed new chapter on “Discovering Problems,” he also walks through the construction of a simple unit testing framework -- and offers detailed coverage of using the latest version of JUnit to perform more sophisticated functionality testing. The same chapter also covers JDK 1.4’s new logging and assertions support, as well as debugging and profiling techniques every Java developer needs.
Since there’s more to cover in Java than ever before, Eckel’s had to battle to keep this book down to size. (People have actually complained that Thinking in Java is too big -- which is like complaining that someone’s given you too many diamonds.) So he’s moved J2EE coverage out of this book (they’re downloadable, and will become part of his forthcoming Thinking in Enterprise Java). That means more space for crucial topics like analysis and design; class reuse techniques; collections; and I/O -- including Java 1.4’s newio.
As always, Eckel approaches Java with short, “bite-size” examples, each explaining one concept with total clarity, and organized to build step-by-step, from simple to sophisticated. For this edition, Eckel has revisited virtually all of his code examples. Some old examples are gone; many new ones have been added. In many cases, he’s thoroughly redesigned and reimplemented his examples, to improve consistency and to reflect today’s best practices for Java programming. In rewriting his code, he has a huge advantage over most other authors: the extensive feedback he gets in his seminars, event appearances, and at his hugely popular web site.
The accompanying CD-ROM contains electronic versions of the book plus all of its source code. But it also contains the solution to one of the key obstacles that face many developers trying to learn Java for the first time. Java’s roots are in C. To really instinctively “get” Java, it helps to know at least the rudiments of C. So Eckel has bundled a complete interactive “Thinking in C” training course that covers everything you ought to know before you start learning Java. Just another example of how committed Eckel is to making sure you really get it. Bill Camarda
Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.