Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player

FREE Shipping on orders over $35.

Used - Very Good | See details
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Thinking in Java (2nd Edition) [Paperback]

by Bruce Eckel
4.1 out of 5 stars  See all reviews (129 customer reviews)

Available from these sellers.

Free Two-Day Shipping for College Students with Amazon Student

Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more
There is a newer edition of this item:
Thinking in Java (4th Edition) Thinking in Java (4th Edition) 4.0 out of 5 stars (66)
In Stock.

Book Description

May 31, 2000 0130273635 978-0130273635 2
Thinking in Java, Second Edition is the much-anticipated revision of Bruce Eckel's best-selling Java introduction: the book that won the 1999 Software Development Magazine Productivity Award! Eckel is as brash, opinionated, knowledgeable, and fascinating as ever -- and he's updated this new edition to fully reflect the power of Java 2. As always, Eckel doesn't just show you what to do, but why. He introduces all the basics of objects as Java uses them; then walks carefully through the fundamentals of Java programming, including program flow, initialization and cleanup, implementation hiding, reusing classes and polymorphism. Using to-the-point examples, he introduces exception handling, Java I/O, run-time type identification, and passing and returning objects. The new edition adds exceptional coverage of server-side Java, including servlets and JavaServer Pages; Enterprise JavaBeans (EJB) database integration, transactions, and security; and much more. The AWT chapter has been replaced with a thorough introduction to the Swing GUI libraries, and there are new sections on Jini and JavaSpaces. All code examples are on the accompanying CD-ROM, plus electronic copies of the book in several formats, and the complete Thinking in C multimedia course, introducing key concepts all beginning programmers must master before learning Java.

Editorial Reviews Review

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
  • Enterprise JavaBeans (EJBs) and Jini
  • Cloning objects
  • The Java Native Interface (JNI)
  • Java programming guidelines
  • 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 HTTP://WWW.BRUCEECKEL.COM

    JavaWorld Reader's Choice Award for best book, 2000
    Java Developer's Journal Editor's Choice Award for best book, 1999
    Software Development Magazine Productivity Award, 1999

    From the fundamentals of Java syntax to its most advanced features (distributed computing, advanced object-oriented capabilities, multithreading), "Thinking in Java" is designed to teach. Bruce Eckel's readable style and small, direct programming examples make even the most arcane concepts clear.

    • Java 2 only!
    • First edition covering Java 1 on CD ROM and downloadable from
    • For beginners and experts alike.
    • Teaches Java linguistics, not platform-dependent mechanics.
    • Thorough coverage of fundamentals, demonstrates advanced topics.
    • 300+ working Java programs, 15,000+ lines of code.
    • Source code on the CD and downloadable.
    • Explains sound object-oriented principles as they apply to Java.
    • From an independent voice, award-winning author Bruce Eckel.
    • Regular updates of this book available of this book available online.
    • Companion CD with more than 15 hours of audio lectures by Bruce Eckel available online.
    • Live seminars available. See schedule at

    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."

    Product Details

    • Paperback: 1128 pages
    • Publisher: Pearson Education; 2 edition (May 31, 2000)
    • Language: English
    • ISBN-10: 0130273635
    • ISBN-13: 978-0130273635
    • Product Dimensions: 9.3 x 7 x 1.7 inches
    • Shipping Weight: 3.6 pounds
    • Average Customer Review: 4.1 out of 5 stars  See all reviews (129 customer reviews)
    • Amazon Best Sellers Rank: #1,456,704 in Books (See Top 100 in Books)

    Customer Reviews

    Most Helpful Customer Reviews
    162 of 175 people found the following review helpful
    5.0 out of 5 stars Thinking in Java June 8, 2000
    If your are new to Java or just the whole OOP programming concept, this is the book for you.
    Here is my story:
    In the beginning of Sept. of 1999 I started read Bruce's Thinking in Java with only a structured programming background. I had previously done some programming in a language called CSP (a Cobal generator) on the mainframe and had some experience with VB and C. A friend and I made a commitment to get java certified by January of 2000 or around then because if we were going to learn java, might as well do it the right way. So, through five month of reading and doing almost every example in the book, I was java certified on January 14. The point I am trying to make is 1. use this book as a launch pad into the java and OOP world, 2. I would recommend learning Java with a friend because it is easier for you to stay focused on the true goal, and 3. do all of the examples in the book. This, obiously is not the only way to learn, however, it was a way that helped me.
    Note: I was working full time.
    So, I would recommend "Thinking in Java" for beginners and intermediates programmers
    Comment | 
    Was this review helpful to you?
    45 of 48 people found the following review helpful
    2.0 out of 5 stars Overrated... March 9, 2002
    By A Customer
    What are these people thinking? I get the impression sometimes that all you need to do to get a five-star rating is number all the pages. This is not a terrible book, but it's definitely not five, or even three, star material. I also have Horton's "Beginning Java 2" and Deitel's "Java - How to Program". I don't think these are five-star books either, but they're both much better than "Thinking in Java".
    Several things hurt this book. One is the author's reliance on comparing concepts to C++ - great if you know C++, but I firmly believe you don't need that to learn java, IF the material is presented correctly. Neither Horton nor Deitel assume any exposure to C++.
    Another failure is in the author's code examples. He is generous with these, as is expected, but his descriptions and explanations of his examples are insufficient in many cases. No problem with easy examples, but the reader is left to struggle when more complex examples are presented. It seems like the longer the example, the shorter the explanation. Both Horton and Deitel offer very comprehensive explanations of their examples. Deitel even goes so far as to number every single line of code, and explain virtually every line of code, number by number.
    Compounding this is the almost complete lack of diagrams and graphics. For example, the author rambles on while trying to explain the hierarchy of the Exception class, when a simple tree diagram (as most books use) and brief explanation would have been so much clearer. In addition, there are no graphics of what his GUI code examples produce.
    Read more ›
    Was this review helpful to you?
    26 of 26 people found the following review helpful
    5.0 out of 5 stars Getting close to perfection September 6, 2000
    This book goes way beyond the "tips and tricks" explained in so many other Java books. It explains in exhaustive detail how and why one should use the object oriented features of the language to produce professional-grade code. It explains many finer points of scope resolution, syntax, and class design which I have never seen covered anywhere else.
    It covers the most important parts of the standard libraries to illustrate good object-oriented design and coding practices. The whole idea is that, once you understand the underlying principles of the language, you'll be capable of using the free Java API documentation without needing everything to be explained to you any further.
    In my review of the first edition, I complained that the examples weren't always as realistic as I would have liked to have seen, and that the writing was occasionally not as clear as it might have been. I think that the writing has gotten clearer in most places, but the examples still sometimes leave me thinking "That's really fascinating, but when, why, and how would I use this in an actual development project?" Nevertheless, I have learned to love even the code examples for their authoritative demonstrations of object-oriented coding techniques that even most expert Java developers probably don't know, and probably should know.
    As a programmer, I often get depressed when I see how much really atrocious code is being pumped out. After a ten-hour day of wading through swamps full of incomprehensible spaghetti, it is like a breath of fresh air to open Bruce Eckel's masterpiece and realize that there are others out there who care about the quality of the software being developed today.
    Read more ›
    Comment | 
    Was this review helpful to you?
    27 of 28 people found the following review helpful
    5.0 out of 5 stars Best Java Book I've Read December 25, 2000
    I found Thinking in Java to be an extremely readable book. I read the book pretty much cover to cover and by the time I'd finished I found myself quite comfortable with the concepts in Java. A couple of years of programming in it and I've never felt that I was disillusioned by that (as often turns out when you start actually using something that you think you know).
    Learning the syntax of a language is the easy part -- the hard part is understanding why things are done in certain ways and how to best utilize the language features, and I felt this book did a great job of explaining that.
    I'm amazed looking through the vastly differing opinions on this book -- so perhaps the best advice is to flip through the pages at a bookstore and see if you like the writing style or not. Or, perhaps look through the table of contents and see if the chapter titles are the types of things you're looking for. My guess is that perhaps this isn't a good book for people who have never programmed before. A few notes from the book's prerequisite section on this:
    "This book assumes that you have some programming familiarity: you understand that a program is a collection of statements, the idea of a subroutine/function/macro, control statements such as 'if' and looping constructs such as 'while,' etc... As long as you've programmed to the point where you feel comfortable with the basic ideas of programming, you'll be able to work through this book. Of course, the book will be easier for the C programmers and more so for the C++ programmers, but don't count yourself out if you're not experienced with those languages (but come willing to work hard)."
    (Wouldn't it be nice if amazon could list prerequisite sections for all of their technical books??)
    Comment | 
    Was this review helpful to you?
    Most Recent Customer Reviews
    5.0 out of 5 stars One of my favorites!
    This is without a doubt my favorite Java book on the shelf. To start, let me make it clear that this book is not intended for beginning Java programmers. Enough said on that. Read more
    Published on May 5, 2006 by Brook Spearin (M)
    5.0 out of 5 stars I LOVE this book
    This book is available, for free, from the author's website ([...] the book, however, is far easier to read in book form than your monitor or a foot-high stack of printouts. Read more
    Published on March 18, 2005 by Thomas Dunham
    5.0 out of 5 stars Great book
    I read it as a refresher several years ago, but I still find myself referring to it every now and then. An excellent survey of Java.
    Published on June 10, 2004 by onlyaymie
    5.0 out of 5 stars Perfect book for anyone interested in jumping into Java
    I felt obligated to thank you for you countless writing, specifically "Thinking in Java, Second Edition". Read more
    Published on April 2, 2004 by Jaguar
    5.0 out of 5 stars Study Java as an OO language
    I'm dealing with OOD and UML for 5 years and this book gave me the opportunity to study java not only as an programming language ( Like all those "Teach yourself on... Read more
    Published on March 4, 2004 by Alon Shefer
    1.0 out of 5 stars It assumes you Know C++
    why repeat myself? It assumes you know C++, save yourself some money be reading some it online. It did not work for me, another door stop
    Published on August 18, 2003 by George A. Osmer
    4.0 out of 5 stars Great but not muscular throughout
    This is overrated by some reviewers.
    First of all, this book will suit a C++ programmer most. The writer expects the reader to have some programming experience, so you need... Read more
    Published on September 24, 2002 by Fazle Arefin
    2.0 out of 5 stars I can't agree that it is a good book
    After I bought this book I feel that this book is so unorganized,
    the only good part is network programming chapter. Read more
    Published on September 21, 2002 by jenny
    5.0 out of 5 stars Don't think twice about getting this book
    In my opinion this is the best Java book for beginners out there. The material is easy to understand and chronologically divided. Read more
    Published on September 10, 2002 by Aleksandar
    3.0 out of 5 stars Complicated Examples
    Excelent book with a good logical sequence. But Bruce's examples are sometimes so complex that it's harder to understand the five level class diagram than the theory behind it.
    Published on September 9, 2002 by Guilherme
    Search Customer Reviews
    Only search this product's reviews

    What Other Items Do Customers Buy After Viewing This Item?

    Sell a Digital Version of This Book in the Kindle Store

    If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


    Topic From this Discussion
    Version Of Java
    I copied this from the preface:
    The cover indicates that this book is for "Java SE5/6," which means "written for Java SE5 and
    the very significant changes that version introduced into the language, but is equally applicable
    to Java SE6."
    Aug 21, 2006 by Carlos A. Marquez Chavez |  See all 2 posts
    Have something you'd like to share about this product?
    Start a new discussion
    First post:
    Prompts for sign-in

    Search Customer Discussions
    Search all Amazon discussions

    Look for Similar Items by Category