Thousands of expert Java developers rely on The Java Developers Almanac for the fast answers they need to save time -- and the authoritative guidance they need to build great applications. Together, the Part A and Part B volumes are twice as big as the previous edition. The Java Developers Almanac Version 1.4 offers up-to-the-minute, thorough quick-reference information for every major version of the core Java Class Libraries, from JDKs 1.0/1.1 through the brand-new J2SE Version 1.4. You'll find updated coverage of 2,100 classes and 24,000 members -- all formatted, organized, and cross-referenced for easy lookup. No other quick ref includes as much information. The book is now printed in 2-color -- so it's even easier to find what you're looking for. The Java Developers Almanac Version 1.4 presents complete member listings of every covered class; detailed analyses of API changes for each release, and 300+ "examplets" succinctly demonstrating each package's key operations. This, Part B, and its companion Part A, are logically divided in a way programmers will understand. Both volumes are essential resources for every Java developer.
Welcome to the fourth edition of The Java Developers Almanac.
There was a time 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.
Version 1.1 added 250 classes and 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.
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. With today's class count at 3000, you're bound to forget a few details now and again. The almanac is great for 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, Third 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 at http://java.sun.com/docs.
The book is divided into four parts, briefly described next.
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 what other related classes are available in a package.
Most packages provide a number of examples demonstrating common usage of classes in the package. The examples 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. The code for the examples are available on http://javaalmanac.com.
This 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. New for this edition are example numbers on some of the members. This number refers to an example that demonstrates the use of the member (or a related member).
This part is a set of quick-reference tables on miscellaneous topics. For example, the topic title "Java 1.4" contains a detailed analysis of the API differences between Java 1.3 and Java 1.4.
This part is a cross-reference of all of the Java classes and interfaces covered in this book. 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?
As the title suggests, this book is intended to be updated whenever a new major version of the Java class libraries is released. However, before a new version is published, I will be placing any new material that I manage to write on the http://javaalmanac.com website. Since this book 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. Although Im afraid I probably wont be able to reply, I promise to read and consider each suggestion I receive. You can reach me at the following e-mail address:firstname.lastname@example.org
First 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 (email@example.com), 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.
Thanks to Lananh Dang who complained about my java.sql examples and ended up writing the java.sql examples for this edition.
Special thanks to Rosanna, my wife, who helped me with writing examples 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, Joshua 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: Jacquelyn Doucette, Tracy Russ, and Sarah Weaver.Patrick Chan