Always Learning

Thinking in Java, 3/E
Bruce EckelPresident, MindView, Inc.

ISBN-10: 0131002872
ISBN-13:  9780131002876

Publisher:  Prentice Hall
Copyright:  2003
Format:  Paper Bound w/CD-ROM; 1119 pp
Published:  12/06/2002


Print this content

In this section:


Description

Appropriate for intermediate to advanced courses in Java.

In Thinking in Java, Third Edition, Bruce Eckel revises his widely-praised Java introduction to fully reflect the power of Java 2 Standard Edition, Version 1.4. This new edition of the book that won the 1999 Software Development Magazine Productivity Award adds thoroughly updated coverage of servlets, JSP, and EJB. As always, Eckel doesn't just show students 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. Coverage also includes: database integration, transactions, security, Swing GUI development, Jini, JavaSpaces, and much more. Eckel presents Java one simple step at a time, carefully organizing his material so students can learn new concepts even in short study periods, and thoroughly digest each new idea and technique before moving on. All code examples are simple and short, enabling even beginners to understand every detail. All code examples are on the accompanying CD-ROM, along with electronic copies of the book in several formats, and the complete Thinking in C multimedia course, which introduces crucial concepts every beginning programmer must master before learning Java.


Features

  • NEW - Completely updated for Java 2 Version 1.4.
    • Gives students practical mastery over the most important new Java 2 Version 1.4 features and capabilities—enabling them to build more powerful, robust, and reliable software systems.

  • NEW - Thoroughly updated coverage of server-side Java—JavaServer Pages (JSP), servlets, and Enterprise JavaBeans (EJB).
    • Shows students how to build the server-side Java applications that are in high—and growing demand.

  • Broad coverage, clear and simple explanations—Coverage ranges from the fundamentals of program flow and object-oriented programming to advanced techniques for I/O, Swing GUI development, JavaSpaces distributed development, security, and more.
    • Covers all the Java features and techniques students are likely to need.

  • Both content and context—Covers the "forest"and the "trees", delivering insight into the realities of Java object-oriented development, as well as practical hands-on experience with Java's most important features and techniques.
    • Gives students an ideal balance of theory and practice—so they will not only know what to do, but why.

  • Hundreds of self-contained example programs—Provides short, simple Java programs designed to help students clearly understand key concepts, without ever introducing unnecessary complexity.
    • Students can immediately test, extend, and apply the lessons they've learned, establish a solid foundation of skills, build their expertise, and ultimately synthesize new approaches for themselves.

  • Modular, bite-sized approach—Carefully organized so that each new concept builds on what has come before.
    • Students learn more rapidly and effectively, and can master significant new concepts and techniques even in brief periods of study.

  • Thinking in C multimedia seminar on CD-ROM—Multimedia Thinking in C seminar on CD-ROM prepares absolute beginners to learn Java.
    • Ensures that students understand the basic programming concepts they must know before they can learn Java.


New To This Edition

  • Completely updated for Java 2 Version 1.4.
    • Gives students practical mastery over the most important new Java 2 Version 1.4 features and capabilities—enabling them to build more powerful, robust, and reliable software systems.

  • Thoroughly updated coverage of server-side Java—JavaServer Pages (JSP), servlets, and Enterprise JavaBeans (EJB).
    • Shows students how to build the server-side Java applications that are in high—and growing demand.


Table of Contents



Preface.

Preface to the 3rd edition. Java 2, JDK 1.4.



Introduction.

Prerequisites. Learning Java. Goals. JDK HTML documentation. Chapters. Exercises. The CD ROM. Source code. Java versions. Errors. Note on the cover design. Acknowledgements.



1. Introduction to Objects.

The progress of abstraction. An object has an interface. An object provides services. The hidden implementation. Reusing the implementation. Inheritance: reusing the interface. Interchangeable objects with polymorphism. Object creation, use & lifetimes. Exception handling: dealing with errors. Concurrency. Persistence. Java and the Internet. Why Java succeeds. Java vs. C++? Summary.



2. Everything is an Object.

You manipulate objects with references. You must create all the objects. You never need to destroy an object. Creating new data types: class. Methods, arguments, and return values. Building a Java program. Your first Java program. Comments and embedded documentation. Coding style. Summary. Exercises.



3. Controlling Program Flow.

Using Java operators. Execution control. Summary. Exercises.



4. Initialization & Cleanup.

Guaranteed initialization with the constructor. Method overloading. Cleanup: finalization and garbage collection. Member initialization. Array initialization. Summary. Exercises.



5. Hiding the Implementation.

Package: the library unit. Java access specifiers. Interface and implementation. Class access. Summary. Exercises.



6. Reusing Classes.

Composition syntax. Inheritance syntax. Combining composition and inheritance. Choosing composition vs. inheritance. protected. Incremental development. Upcasting. The final keyword. Initialization and class loading. Summary. Exercises.



7. Polymorphism.

Upcasting revisited. The twist. Abstract classes and methods. Constructors and polymorphism. Designing with inheritance. Summary. Exercises.



8. Interfaces & Inner Classes.

Interfaces. Inner classes. Why inner classes? Summary. Exercises.



9. Error Handling with Exceptions.

Basic exceptions. Catching an exception. Creating your own exceptions. The exception specification. Catching any exception. Standard Java exceptions. Performing cleanup with finally. Exception restrictions. Constructors. Exception matching. Alternative approaches. Exception guidelines. Summary. Exercises.



10. Detecting Types.

The need for RTTI. RTTI syntax. Reflection: run time class information. Summary. Exercises.



11. Collections of Objects.

Arrays. Introduction to containers. Container disadvantage: unknown type. Iterators. Container taxonomy. Collection functionality. List functionality. Set functionality. Map functionality. Holding references. Iterators revisited. Choosing an implementation. Sorting and searching Lists. Utilities. Unsupported operations. Java 1.0/1.1 containers. Summary. Exercises.



12. The Java I/O System.

The File class. Input and output. Adding attributes and useful interfaces. Readers & Writers. Off by itself: RandomAccessFile. Typical uses of I/O streams. File reading & writing utilities. Standard I/O. New I/O. Compression. Object serialization. Preferences. Regular expressions. Summary. Exercises.



13. Concurrency.

Motivation. Basic threads. Sharing limited resources. Improperly Thread states. Cooperation between threads. Deadlock. The proper way to stop. Interrupting a blocked thread. Thread groups. Summary. Exercises.



14. Creating Windows & Applets.

The basic applet. Running applets from the command line. Making a button. Capturing an event. Text areas. Controlling layout. The Swing event model. A catalog of Swing components. Packaging an applet into a JAR file. Signing applets. JNLP and Java Web Start. Programming techniques. Concurrency & Swing. Visual programming and JavaBeans. Summary. Exercises.



15. Discovering Problems.

Unit Testing. Improving reliability with assertions. Building with Ant. Logging. Debugging. Profiling and optimizing. Doclets. Summary. Exercises.



16. Analysis and Design.

Methodology. Phase 0: Make a plan. Phase 1: What are we making? Phase 2: How will we build it? Phase 3: Build the core. Phase 4: Iterate the use cases. Phase 5: Evolution. Plans pay off. Extreme Programming. Strategies for transition. Summary.



A. Passing & Returning Objects.

Passing references around. Making local copies. Controlling cloneability. Read-only classes Summary. Exercises.



B. Java Programming Guidelines.

Design. Implementation.



C. Supplements.

Foundations for Java seminar-on-CD. Thinking in Java seminar. Hands-On Java seminar- on-CD 3rd edition. Designing Objects & Systems seminar. Thinking in Enterprise Java. The J2EE seminar. Thinking in Patterns (with Java). Thinking in Patterns seminar. Design consulting and reviews.



D. Resources.

Software. Books.



Index.


Next Edition(s)

  • Thinking in Java, 4/E
    Eckel
    ©2006  |  Prentice Hall  |  Paper; 1520 pp  |  Instock
    ISBN-10: 0131872486  |  ISBN-13: 9780131872486
    Brief Description  |  More Info



Back to top

Print this content

In this section:


Sample Chapter

View a Sample Chapter PDF:/samplechapter/0131002872.pdf


Author Bios

BRUCE ECKEL is president of Mindview, Inc., which provides public and private training seminars, consulting, mentoring, and design reviews in Object-Oriented technology and Design Patterns. He is the author of Thinking in C++, Volume 2, and other books, has written over 150 articles, and has given lectures and seminars throughout the world for over 20 years. He has served as a voting member of the C++ Standards Committee. He holds a BS in Applied Physics and an MS in Computer Engineering.


Backcover Copy

Bruce Eckel's Thinking in Java

  • JavaWorld Editor's Choice Award for Best Book, 2001
  • JavaWorld Reader's Choice Award for Best Book, 2000
  • Software Development Magazine Productivity Award, 1999
  • Java Developer's Journal Editor's Choice Award for Best Book, 1998
  • Software Development Magazine Jolt Product Excellence Award (for Thinking in C++), 1995

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 (in-depth object-oriented concepts, multithreading, automated project building, unit testing, and debugging), Thinking in Java is designed to teach, one simple step at a time.

  • The classic Java Introduction, fully updated for Java 2 version 1.4, with new topics throughout!
  • New testing framework validates each program and shows you the output.
  • New chapter on unit testing, automated building, assertions, logging, debugging, and other ways to keep your programs in tune.
  • Completely rewritten threading chapter gives you a solid grasp of the fundamentals.
  • 350+ working Java programs, rewritten for this edition. 15,000+ lines of code.
  • Companion web site includes all source code, annotated solution guide, essays and other resources.
  • Includes entire Foundations for Java multimedia seminar on CD-ROM for Windows, Linux and Mac.
  • For beginners and experts alike.
  • Teaches Java linguistics, not platform-dependent mechanics.
  • Thorough coverage of fundamentals; demonstrates advanced topics.
  • Explains sound object-oriented principles as they apply to Java.
  • Hands-on Java CD available online, with 15 hours of lectures and slides by Bruce Eckel.
  • Live seminars, consulting, and reviews available.

www.BruceEckel.com

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

Back to top

Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

        

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel     I accept, proceed with download

Print this content

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.

Back to top