Java(TM) Developers Almanac 1999, 2nd edition
Authors: Patrick Chan
Venue:  (1998)

From the Book:PrefaceWelcome to the second edition of The Java Developers Almanac. There was a time, not long ago, when I intimately knew all of the Java class libraries. I knew how it all worked and exactly how everything fit together. I knew what subclassed what, what overrode what, and so on (of course, it helped that I was one of the original developers :-). But aside from the occasional inability to remember which argument of Vector.insertElementAt() is the index, I rarely had to refer to any reference documentation. With version 1.1, my mastery of the Java class libraries was reduced to half. This left me feeling a little disoriented since I no longer knew my way around, and the increased size of the libraries exceeded my ability to recall the details of the signatures. When I took a peek at version 1.2, I was initially thrilled by all the new functionality I would now have at my fingertips. But as I browsed the new classes, I began to realize that my expertise was being reduced further to just a tiny fraction. I felt lost in this wonderful but vast sea of classes. Since I make my living writing Java code, it was important that I find an efficient way of "navigating" the new libraries. What I wanted was a quick overview of all of the libraries; something that covered every class and briefly showed their relationships; something that would allow me to explore and quickly learn about new packages. This need led to this book. The Java Developers Almanac is like a map of the Java class libraries. It's a compact and portable tool that covers almost all of the libraries, if only from a bird's-eye view. It's great for reminding you of things like method names and parameters. It'sgreatfor discovering the relationships between the classes, such as determining all methods that return an image. It's also great for quickly exploring a new package. While this book is comprehensive, the libraries are so vast that there simply isn't enough room to provide equally comprehensive documentation. So if you're working with a package that is new to you, you'll probably also need a tutorial book such as The Java Tutorial, Second Edition (Campione and Walrath, Addison-Wesley, 1998), a detailed reference such as The Java Class Libraries, Volumes 1 and 2 (Chan, Lee, and Kramer, Addison-Wesley, 1998), and/or the on-line documentation. OrganizationThe book is divided into four parts, briefly described next. Part 1: Packages This part covers each package in alphabetical order: a brief description of the package, a description of each class and interface in the package, and a hierarchy diagram showing the relationship between the classes and interfaces in the package. This part is useful when you need an overview of a package or want to see whatother related classes are available in a package. Most packages provide a number of "examplets" demonstrating common usage of classes in the package. The examplets are designed to demonstrate a particular task using the smallest amount of code possible. Their main purpose is to show you which classes are involved in the described task and generally how they interact with each other. Part 2: ClassesThis part contains 500 pages of class tables, one for each class in all the covered packages. Each class table includes a class tree that shows the ancestry of the class and a list of every member in the class. Also included in the member lists are inherited members from superclasses. Thus you have a complete view of all members made available by a class. This part is useful when you're already working with a particular class and want a quick reference to all of the members in the class. Part 3: TopicsThis part is a set of quick-reference tables on miscellaneous topics. For example, the topic title "Java 1.2" contains a detailed analysis of the API differences between Java 1.1 and Java 1.2. Other useful tables cover documentation comment tags and available system properties, among other topics. Part 4: Cross-ReferenceThis part is a cross-reference of all of the Java classes and interfaces covered in this book. It includes classes from both core and extension packages. This part is useful when you have questions such as What methods return an Image object? or What are all the descendents of java.io.InputStream? UpdatesAs the title suggests, this book is intended to be updated whenever a new major version of the Java class libraries is released. Since it is designed for you to use in your everyday programming-related work, I would love to hear how I could improve it for the next version or simply what you thought about it. For example, are there any more useful tables you'd like to see in Part 3? Although I'm afraid I probably won't be able to reply, I promise to read and consider each suggestion I receive. AcknowledgmentsFirst and foremost, I thank Mike Hendrickson, who spent a great deal of time collaborating with me on this project. He helped me hone the ideas in this book and then supported me all of the way. It's been tremendous fun working with him. Arthur Ogawa, TeX master extraordinaire, provided me with TeX macros without which this book would have been impossible. Thanks for working with me in the wee hours of the morning trying to get everything just right. I want to thank Lisa Friendly, the series editor, for all sorts of help getting this book off the ground and for getting me all of the support I needed. Special thanks to Rosanna, my wife, who helped me with writing examplets and many other parts of the book. Many people gave me feedback or provided some other assistance in the making of this book. Thanks to Jens Alfke, Ken Arnold, Josh Bloch, Paul Bommarito, David Brownell, Michael Bundschuh, Bartley Calder, Casey Cameron, Norman Chin, Mark Drumm, Robert Field, Janice Heiss, Jeff Jackson, Doug Kramer, Sheng Liang, Tim Lindholm, Hans Muller, John Pampuch, Rob Posadas, Mark Reinhold, Dan Rudman, Georges Saab, Bill Shannon, Ann Sunhachawee, Joanne Stewart-Taylor, Laurence Vanhelsuwe, Bruce Wallace, Kathy Walrath, and Tony Welch. Finally, I want to thank the wonderful people at Addison-Wesley who made this project a lot of fun: Sarah Weaver, Tracy Russ, Deborah King, Marina Lang, and Katherine Kwack. Patrick Chan Author Biography: Patrick Chan, winner of The 1998 Duke Award at JavaOne, was a founding member and lead developer of the original Java project at Sun Microsystems, Inc. He is the co-author of The Java Class Libraries, Volumes 1 and 2 and 1.2 Supplement.