Editorial Reviews:
"Thinking in Java should be read cover to cover by every Java programmer, then kept close at hand for frequent reference. The exercises are challenging, and the chapter on Collections is superb! Not only did this book help me to pass the Sun Certified Java Programmer exam; it's also the first book I turn to whenever I have a Java question." --Jim Pleger, Loudoun County (Virginia) Government"Much better than any other Java book I've seen. Make that 'by an order of magnitude'...Very complete, with excellent right-to-the-point examples and intelligent, not dumbed-down, explanations...In contrast to many other Java books I found it to be unusually mature, consistent, intellectually honest, well-written, and precise. IMHO, an ideal book for studying Java." --Anatoly Vorobey, Technion University, Haifa, Israel"Absolutely one of the best programming tutorials I've seen for any language." --Joakim Ziegler, FIX sysop"Thank you again for your awesome book. I was really floundering (being a non-C programmer), but your book has brought me up to speed as fast as I could read it.It's really cool to be able to understand the underlying principles and concepts from the start, rather than having to try to build that conceptual model through trial and error. Hopefully I will be able to attend your seminar in the not-too-distant future." --Randall R. Hawley, automation technician, Eli Lilly & Co."This is one of the best books I've read about a programming language...The best book ever written on Java." --Ravindra Pai, Oracle Corporation, SUNOS product line"Bruce, your book is wonderful! Your explanations are clear and direct. Through your fantastic book I have gained a tremendous amount of Java knowledge. The exercises are also fantastic and do an excellent job reinforcing the ideas explained throughout the chapters. I look forward to reading more books written by you. Thank you for the tremendous service that you are providing by writing such great books. My code will be much better after reading Thinking in Java. I thank you and I'm sure any programmers who will have to maintain my code are also grateful to you." --Yvonne Watkins, Java artisan, Discover Technologies, Inc."Other books cover the what of Java (describing the syntax and the libraries) or the how of Java (practical programming examples). Thinking in Java is the only book I know that explains the why of Java: Why it was designed the way it was, why it works the way it does, why it sometimes doesn't work, why it's better than C++, why it's not. Although it also does a good job of teaching the what and how of the language, Thinking in Java is definitely the thinking person's choice in a Java book." --Robert S. StephensonAwards for Thinking in Java2003 Software Development Magazine Jolt Award for Best Book 2003 Java Developer's Journal Reader's Choice Award for Best Book 2001 JavaWorld Editor's Choice Award for Best Book 2000 JavaWorld Reader's Choice Award for Best Book 1999 Software Development Magazine Productivity Award 1998 Java Developer's Journal Editor's Choice Award for Best Book Thinking in Java has earned raves from programmers worldwide for its extraordinary clarity, careful organization, and small, direct programming examples. From the fundamentals of Java syntax to its most advanced features, Thinking in Java is designed to teach, one simple step at a time.*The classic object-oriented introduction for beginners and experts alike, fully updated for Java SE5/6 with many new examples and chapters! *Test framework shows program output. *Design patterns are shown with multiple examples throughout: Adapter, Bridge, Chain of Responsibility, Command, Decorator, Facade, Factory Method, Flyweight, Iterator, Data Transfer Object, Null Object, Proxy, Singleton, State, Strategy, Template Method, and Visitor. *Introduction to XML for data transfer; SWT, Flash for user interfaces. *Completely rewritten concurrency chapter gives you a solid grasp of threading fundamentals. *500+ working Java programs in 700+ compiling files, rewritten for this edition and Java SE5/6. *Companion web site includes all source code, annotated solution guide, weblog, and multimedia seminars. *Thorough coverage of fundamentals; demonstrates advanced topics. *Explains sound object-oriented principles. *Hands-On Java Seminar CD available online, with full multimedia seminar by Bruce Eckel. *Live seminars, consulting, and reviews available. See www.MindView.net Download seven free sample chapters from Thinking in Java, Fourth Edition. Visit http://mindview.net/Books/TIJ4.
Perfect for migrating to Java from a fellow object-oriented language (such as C++), the second edition of Thinking in Java continues the earlier version's thoughtful approach to learning Java inside and out, while also bringing it up to speed with some of the latest in Java 2 features. This massive tutorial covers many of the nooks and crannies of the language, which is of great value in the programming world. The most prominent feature of the book is its diligent and extremely thorough treatment of the Java language, with special attention to object design. (For instance, 10 pages of sample code show all of the available operators.) Some of the best thinking about objects is in this book, including when to use composition over inheritance. The esoteric details of Java in regard to defining classes are thoroughly laid out. (The material on interfaces, inner classes, and designing for reuse will please any expert.) Each section also has sample exercises that let you try out and expand your Java knowledge. Besides getting the reader to "think in objects," Thinking in Java also covers other APIs in Java 2. Excellent sections include an in-depth tour of Java's collection and stream classes, and enterprise-level APIs like servlets, JSPs, EJBs, and RMI. Weighing in at over 1,000 pages, any reader who is serious about learning Java inside and out will want to take a look at this superior resource on some of the latest and most advanced thinking in object design. --Richard Dragan Topics covered: - Object-design basics
- Inheritance and polymorphism
- Object lifetimes
- Exception handling
- Multithreading and persistence
- Java on the Internet
- Analysis and design basics
- Java basics: keywords and flow control
- Initializing objects
- Garbage collection
- Java packages
- Designing for reuse: composition vs. inheritance
- The final keyword
- Interfaces and inner classes
- Arrays and container classes
| - Java I/O classes
- Run-time type identification
- UI design basics with Swing
- Deploying to JAR files
- Network programming with sockets
- JDBC database programming
- Introduction to servlets
- JavaServer Pages (JSPs)
- RMI
- CORBA
- Enterprise JavaBeans (EJBs) and Jini
- Cloning objects
- The Java Native Interface (JNI)
- Java programming guidelines
| |
Customer Reviews:
Displaying 1 to 5 of 300 total reviews (Page 1 of 61):
Call me superficial, but..
.. why is a book on sale in 2008 typeset as if it's 1970s? Is $40 per copy not enough to hire a designer - or provide a binding that is not going to fall apart in a week?
As far as content is concerned, my benchmark has been the SCJP prep book by Sierra and Bates. I took a random topic, generics, and how much more lucid and to-the-point the SCJP book was. Seems specifically designed to confuse beginners.
Although this book purports to be written for anyone with even a little bit of prior programming experience, I am finding it very difficult to follow. This, even though I have been dabbling in programming since 1976 and I have gotten 'A's in several programming classes.
The author makes three major mistakes all throughout the book:
First, he uses compressed code formating that makes it difficult to see where one part of the code ends and another starts. I know it is common for advanced programmers and authors trying to save paper to use this format, but it should not be used in a book for beginning Java programmers. I spend more time just trying to sort out which curly bracket matches to which curly bracket than anything else in trying to read his code.
Second, he continuously uses advanced techniques and Java features in sample code meant to illustrate beginning concepts. This leaves the reader confused about what the code is doing at all and forces them to simply take on faith that what the author says about the code is true. For instance, in the section titled "Your first Java Program" (page 78) the author instantiates an anonymous object and passes it to a method. There was no reason to include this line of code. But the author stuck it in there and then waved his hands at it saying merely, "The argument is a Date object that is being created just to send its va1ue (which is automatically converted to a String) to println(). As soon as this statement is finished, that Date is unnecessary, and the garbage collector can come along and get it anytime. We don't need to worry about cleaning it up." In those few sentences the author has made reference to several more advanced features without even explaining them. So, in trying to understand that one unnecessary line of the reader is spun off on at least three different tangents.
The next sample program is even worse. The very first line that actually does anything is " System.getProperties().list(System.out); " Holy cow! The System.getProperties() method returns a Properties object which is an extension of the Hashtable class. Then the second dot operator calls the list method for Properties object that has "replaced" the System.getProperties() part of the code as far as the second dot operator is concerned. The list() method then accepts as an argument a static PrintStream object which the list() method then sends its output to. And the author says merely, "The first line in main( ) displays all of the "properties" from the system where you are running the program, so it gives you environment information. The list() method sends the results to its argument, System.out." But to someone who is only just now reading this page in the book, "System.out" is how you print something, NOT something that can be passed as an argument. And have you ever tried to Google a period (.)? How is a beginner supposed to figure out that the list() method is a member of the Properties object that was returned by the System.getProperties() method. Sure, you can dig it out of the JavaDocs but a beginner won't be able to do this easily. Besides, if you are going to force the reader to dig everything out of the JavaDocs then what the heck is the book good for?
This same pattern is repeated throughout the book. Every single example has something in it that is more advanced than a person who has gotten to that part of the book could reasonably be expected to be able to figure out.
Finally, the biggest problem with this book is that the author has created his own set of libraries and uses them heavily in his code but doesn't indicate where. So, if you don't have the entire JDK memorized you have no clue when he is using something from the standard libraries or something from his own libraries. If you are trying to learn the basics of Java, you don't want to have some other stuff mixed in at random. Sure, the author's libraries may solve some interesting problems and it may make some things easier to code. But it DOES NOT teach the reader about how Java works other than it is possible to completely obfuscate everything you do.
So, my conclusion is that this book is really good for nothing. It is too confusing for the beginner and is way too wordy for an expert. Intermediate users will spend more time digging through the JavaDocs than they do reading the book.
Thinking in Java
Ok, I have read about 200 textbooks or better in my day, 20 - 30 or so in the programming area, and I have to say this was the worst text book I have ever looked at. It was poorly written and poorly organized. Thinking in Java, 4th edition
This is a beginner addressed book on Java: if you are already skilled in programming with procedural or even OO language, you'll find this book very useful.
The text is very simple and clear, the examples are incisive and at the end of each chapter you'll find a couple of exercises that can be very useful to focus the concepts.
A "thinking in enterprise java" would be a great successor to this good book.
5 stars! Comprehesive Java Tutorial
Thinking in Java is a quite comprehensive book for intermediate to advanced level for Java programmers. Each chapter can be read individually in order to learn inner details of Java 5/6 language. This is not a book for a new comer to Java language. More Customer Reviews: Next Page
|