Revision 9
Revision history for Thinking in Java, 2nd edition
Please note that some chapters have not yet been rewritten (see below).
Full text, source code and additional information available at
www.BruceEckel.com.
To be informed of future releases of this document and other information about object-oriented books, documents, seminars and CDs, subscribe to my free newsletter. Just send any email to:
join-eckel-oo-programming@earth.lyris.net
Chapters left to rewrite:
Chapter 11: The Java IO System
Chapter 13: Creating Windows and Applets
Chapter 14: Multiple Threads
Chapter 15: Distributed Computing
Revision history:
Revision 9, March X, 2000:
- The primary reason for this release is for my 3-day tutorial at the SD conference. As I
was bringing the "Hands-On Java" presentation material up to date with the current version
of the book, I ended up making a fair number of code changes in the last chapters.
- Reworked all the GUI examples by creating Console.java which combines all the necessary
commands for running an application or applet into the overloaded run() method. Converted
most non-applets to applets and added Console.run() to them, so they can now be used from
the command-line, with the appletviewer or in web pages (which are automatically generated
for appropriate chapters).
- The Servlet and JSP examples now have their own HTML pages. However, you must set up Tomcat
(See www.apache.org) and copy the files into the appropriate directory (which is performed by
the makefiles, but you'll have to modify paths) and run tomcat in order for it to work.
- Incorporated copyeditor's corrections for Chapter 4
- Made array definitions use a consistent syntax ('[]' associated with the type, not the id)
- Some changes to EJB section
Revision 8, March 7, 2000:
- Complete rewrite of Chapter 9 for the Java 2 collections. Changed all the existing examples,
removed many of them, added lots of new ones. I'm particularly pleased with the section on
hashing, where I created my own simple hash map as a demonstration. Many exercises added.
- Rewrote Chapter 10 and added exercises
- Rewrote Chapter 12 and added exercises
- Rewrote Appendix A and added exercises
- Rewrote Appendix B, modifying the examples so that they work both under Win32
(configured by default for the free Borland C++ compiler, with Visual C++ configuration
information also in the makefile) and Linux, using g++. Had to hack the Linux stuff a
little because I couldn't figure out how to set the library path properly
(hints are appreciated!)
- Rewrote Appendix C quite a bit
- Rewrote Appendix D
- Integrated copyeditor's edits including the frontmatter up through the end of Chapter 3.
- After thought and consultation, decided to change "handle" to "reference" throughout the book.
- Went through and incorporated many of the corrections on the pending correction list.
- Turned the "Design Patterns" chapter into its own book: "Thinking in Patterns with Java." This chapter had begun bursting at the seams, and was a major obstacle in getting the book out on schedule. Also, it was not material that was covered in the 5-day seminar, but instead has its own seminar and clearly justifies its own book. More information on this project will be posted as it develops.
Revision 7, Feb 21, 2000:
- Rewrote Chapter 5 and added exercises
- Rewrote Chapter 6 and added exercises
- Broke Chapter 7 into two chapters: 7: Polymorphism and 8: Interfaces and Inner classes. This
was in the making for quite awhile, because this lecture during the HOJ seminars was way
too long.
- Rewrote Chapter 7 and added exercises
- Rewrote Chapter 8 and added exercises
- Finalized chapter organization by absorbing the "Enterprise Programming" chapter into the "Distributed Computing" chapter. The intent is that the enterprise programming stuff will stay stimple and introductory, to give people a feel for it so they are comfortable tackling more complex books. A future edition of the book may break Enterprise Programming into its own chapter if this seems appropriate.
- Renumbered everything to reflect the new chapters
- Fixed the footers so the chapter numbers and titles are correct
Revision 6, Feb 16, 2000
Rewrote Preface, Introduction, and Chapters 1 - 4, which are now ready for copy-editing. Added more exercises to Chapters 2 - 4. Simplified initial example in Chapter 2 and added descriptions of downloading JDK, running the compiler and executing programs.
Revision 5B, Feb 6, 2000
No book content changes. Fixed a lot of the formatting issues in the HTML document, and added color syntax highlighting to the code examples. Corrected the master makefile so that the code will
compile under RedHat Linux 6.1 with the JDK 1.2.2 RC2 (that's what I tested it on). Added a built-in error correction submission page to the HTML distribution, linked from each chapter. Did some work on the error correction submission CGI script on the web site so that it does line wrapping.
Revision 5, January 31, 2000
Rewrote Chapter 1, adapted from new material in "Thinking in C++, 2nd edition Volume 1." Changed "Passing & Returning Objects" into appendix A, since it's a special/advanced topic. Added material and examples to the design patterns chapter. The WindowListener-windowClosing code in almost all examples now has a commented 'setDefaultCloseOperation(EXIT_ON_CLOSE)' in anticipation of Java 1.3, but a substitute version from com.bruceckel.swing so that it will compile in Java 1.2. Fixed IDL code generation and directory. All code compiles in Java 1.2 by typing 'make' in the root code directory.
Revision 4, Nov 14 1999
Incremental changes and improvements. In particular, the swing demo HTML pages use frames and some adjustments have been made to the examples in that section to work better.
Revision 3, October 17 1999
To the downloadable code, added HTML pages to run all applets in Chapter 13 and modified the height and width accordingly. Added Rahim Adatia's drag and drop example. Modified the last JSP examples. Added Bill Venner's Jini section.
Revision 2, October 11 1999
Worked on the Enterprise chapter with Dave Bartlett; added preliminary section on EJBs from Robert Castaneda. Added a number of JSP examples.
Revision 1, August 1999
With the aid of a few folks on the Internet (noted in the introduction), did a first rewrite of all the AWT examples so they use swing. NOTE: only the examples have changed, the prose has not been rewritten. In particular, Chapter 13 will need to be rewritten fairly thoroughly. However, the entire book compiles with the Java 2 SDK, Standard Edition, v 1.2 available from http://java.sun.com. Source code can be found in zipped format at www.BruceEckel.com.
Changed all fonts to Times Roman & Courier so people don't have any font issues with the downloaded versions of the book (the printed version will use fonts selected by the designer, Daniel Will-Harris). Set up basic structure of the book. Removed the last chapter and distributed a couple of the programs to other chapters. Removed some appendices, to be posted instead on the web site, or integrated them into the chapters of the book. Hacked up the extractcode.cpp program from "Thinking in C++ 2nd edition" to work with this book. Added subdirectory indicators to all code files for extractcode to use.
To do:
- Modify to extract XML deployment descriptors
- Add rmic to makefile for RMI examples
- Comment collector in HTML version of book
- Check HTML applet pages under Linux
- Watch for non-public constructors
- More String material in an earlier chapter; is operator + and += introduced early enough?
- Mention exercise solutions at the beginning of each exercise section, and add a web page to describe status & availability
- Doing your own deprecation in JavaDoc
- Doclets?
- Code evolution (only adding to the interface, calling the new function from the old, deprecating only if necessary)
- Using if(true) and if(false) for conditional compilation
- Introduction to JavaSpaces
- Look for explicit string conversions that don't need to be there.
- change print() functions to toString() functions
- Remove "foo" references
- Watch for "user" versus "client programmer"
- Release forms from Dave & others
- Finalize index
- Remember to replace fonts before making PDF file for printing