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
Book Description
The legendary author Bruce Eckel brings Java to life with this extraordinarily insightful, opinionated and downright funny introduction. Thinking in Java introduces all of the language's fundamentals, one step at a time, using to-the-point code examples. More than virtually any other book, Thinking in Java helps you understand not just what to do -- but why. Eckel introduces all the basics of objects as Java uses them; then walks carefully through the fundamental concepts underlying all Java programming -- including program flow, initialization and cleanup, hiding implementations, reusing classes and polymorphism. Using extensive, to-the-point examples, he introduces error handling, exceptions, Java I/O, run-time type identification, and passing and returning objects. He covers the Java AWT, multithreading, network programming with Java -- even design patterns. The best way to understand the real value of this book is to hear what readers of the online version have been saying about it: "much better than any other Java book I've seen, by an order of magnitude..." "mature, consistent, intellectually honest, well-written and precise..." "a thoughtful, penetrating analytical tutorial which doesn't kowtow to the manufacturers..." "Thank you again for your awesome book. I was really floundering, but your book has brought me up to speed as quickly as I could read it!"For both beginner and experienced C and C++ programmers who want to learn Java. * From the basics of object development, all the way to design patterns and other advanced topics. * By the author of the best-selling Thinking in C++ -- winner of the 1995 Jolt Cola Award! * On-line version has already received tens of thousands of hits -- there's a huge built-in demand for this book!
Book Info
Designed to teach the fundamentals of Java syntax & ultimately teach its most advanced features such as network programming, advanced object-oriented capabilities, & multithreading using an easy to read style. Paper. DLC: Java (Computer program language).
From the Back Cover
The definitive introduction to object-oriented programming in the language of the World Wide Web. Full text, updates and code at BruceEckel 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. * For beginners and experts alike. * Teaches Java linguistics, not platform-dependent mechanics. * Covers the most important aspects of Java 2: Swing and the new collections. * Thorough coverage of advanced Java topics: network programming, multithreading, virtual machine performance, and connecting to non-Java code. * 320 working Java programs, 15,000+ lines of code. * Explains sound object-oriented principles, from inheritance to design patterns. * From an independent voice, award-winning author Bruce Eckel. * Source code and continuously updated, electronic version of the book freely available on the World Wide Web. * Companion CD (with more than 15 hours of integrated audio lectures) available at BruceEckel What People Are Saying: “The best book on Java . . . Your depth is amazing.” “Definitely the thinking person's choice in a Java book.” “One of the absolutely best programming tutorials I've seen, for any language.” Winner of Software Development magazine's Productivity Award at SD 99! Winner of Java Developer's Journal's Editor's Choice Award!
About the Author
Bruce Eckel is a corporate trainer and consultant who writes the Java column for Web Techniques Magazine.
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