Thinking in Java is a printed version of Bruce Eckel's online materials that provides a useful perspective on mastering Java for those with previous programming experience. The author's take on the essence of Java as a new programming language and the thorough introduction to Java's features make this a worthwhile tutorial.
Thinking in Java begins a little esoterically, with the author's reflections on why Java is new and better. (This book's choice of font for chapter headings is remarkably hard on the eyes.) The author outlines his thoughts on why Java will make you a better programmer, without all the complexity. The book is better when he presents actual language features. There's a tutorial to basic Java types, keywords, and operators. The guide includes extensive source code that is sometimes daunting (as with the author's sample code for all the Java operators in one listing.) As such, this text will be most useful for the experienced developer.
The text then moves on to class design issues, when to use inheritance and composition, and related topics of information hiding and polymorphism. (The treatment of inner classes and scoping will likely seem a bit overdone for most readers.) The chapter on Java collection classes for both Java Developer's Kit (JDK) 1.1 and the new classes, such as sets, lists, and maps, are much better. There's material in this chapter that you are unlikely to find anywhere else.
Chapters on exception handling and programming with type information are also worthwhile, as are the chapters on the new Swing interface classes and network programming. Although it adopts somewhat of a mixed-bag approach, Thinking in Java contains some excellent material for the object-oriented developer who wants to see what all the fuss is about with Java.
From Book News, Inc.
Intended for C/C++ programmers, this book introduces the concepts of object-oriented programming and the features of the Java language with tutorial-style chapters on Java operators, reusing classes, polymorphism, interfaces, error handling, collections of objects, concurrency, and applets. The third edition is updated to Java JDK 1.4, and adds a chapter on testing. The CD-ROM contains two seminars.Copyright © 2004 Book News, Inc., Portland, OR
Thinking in Java FROM OUR EDITORS
The Barnes & Noble Review
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.
ANNOTATION
Destined to become a classic, this tutorial guides you through the fundamentals and the advanced aspects of Java. Author Bruce Eckel uses the same style, format, incisive prose and clear examples as he did in Thinking in C++. He doesn't just teach how to write code, he teaches how to think and program in Java. This highly recommended text is designed for those familiar with programming concepts and object-orientation. Eckel covers objects, program flow, error handling, network programming and design patterns. He includes details on the cornerstones of Java and OOP, with polymorphism, implementation hiding, class differentiation and reuse. He also covers passing/returning objects and running multiple concurrent subtasks.
FROM THE PUBLISHER
From the fundamentals of Java syntax to its most advanced features (network programming, advanced object-oriented capabilities, multi-threading), "Thinking in Java," is designed to teach. Bruce Eckel's readable style and small, direct programming examples make even the most arcane concepts clear.
SYNOPSIS
Intended for C/C++ programmers, this book introduces the concepts of object-oriented programming and the features of the Java language with tutorial-style chapters on Java operators, reusing classes, polymorphism, interfaces, error handling, collections of objects, concurrency, and applets. The third edition is updated to Java JDK 1.4, and adds a chapter on testing. The CD-ROM contains two seminars. Annotation (c)2003 Book News, Inc., Portland, OR