Many people helped in the creation of this book, and I am grateful to them all. I am indebted to the many, many readers of the first two editions who wrote in with comments, suggestions, bug reports, and praise. Their many small contributions are scattered throughout the book. Also, my apologies to those who made the many good suggestions that could not be incorporated into this edition.
Paula Ferguson, a friend and colleague, has been the editor of all three editions of this book. Her careful reading and always-practical suggestions have made the book stronger, clearer, and more useful. She guided the evolution of Java in a Nutshell from a single book into a three-volume series and, at times, juggled editing tasks for all three books at once. Finally, Paula went above and beyond the call of editorial duty by designing the hierarchy diagrams found at the start of each reference chapter.
Mike Loukides provided high-level direction and guidance for the first edition of the book. Eric Raymond and Troy Downing reviewed that first edition--they helped spot my errors and omissions and offered good advice on making the book more useful to Java programmers.
For the second edition, John Zukowski reviewed my Java 1.1 AWT quick-reference material, and George Reese reviewed most of the remaining new material. The second edition was also blessed with a "dream team" of technical reviewers from Sun. John Rose, the author of the Java inner class specification, reviewed the chapter on inner classes. Mark Reinhold, author of the new character stream classes in java.io, reviewed my documentation of these classes. Nakul Saraiya, the designer of the new Java Reflection API, reviewed my documentation of the java.lang.reflect package. I am very grateful to these engineers and architects; their efforts made this a stronger, more accurate book.
The third edition also benefited greatly from the contributions of reviewers who are intimately familiar with the Java platform. Joshua Bloch, one of the primary authors of the Java collections framework, reviewed my descriptions of the collections classes and interfaces. Joshua was also helpful in discussing the Timer and TimerTask classes of Java 1.3 with me. Mark Reinhold, creator of the java.lang.ref package, explained the package to me and reviewed my documentation of it. Scott Oaks reviewed my descriptions of the Java security and cryptography classes and interfaces. Joshua, Mark, and Scott are all engineers with Sun Microsystems, and I'm very grateful for their time. The documentation of the javax.crypto package and its subpackages was also reviewed by Jon Eaves. Jon worked on a clean-room implementation of the Java Cryptography Extension (which is available from http://www.aba.net.au/ ), and his comments were quite helpful. Jon now works for Fluent Technologies (http://www.fluent.com.au/ ) consulting in Java and electronic commerce. Finally, Chapter 1 was improved by the comments of reviewers who were not already familiar with the Java platform: Christina Byrne reviewed it from the standpoint of a novice programmer, and Judita Byrne of Virginia Power offered her comments as a professional COBOL programmer.
The O'Reilly & Associates production team has done its usual fine work of creating a book out of the electronic files I submit. My thanks to them all. And a special thanks to Lenny Muellner and Chris Maden, who worked overtime to implement the new and improved format of the quick-reference section.
As always, my thanks and love to Christie.
David Flanagan http://www.davidflanagan.com/ September 1999
Copyright © 2001 O'Reilly & Associates. All rights reserved.