While Java started out simply enough with relatively few objects and APIs, today's Java 2, Standard Edition (J2SE) bundles over 2,100 classes. The Java Developer's Almanac
provides a truly valuable reference to nearly all the classes and APIs in standard Java. This "white pages" for Java puts all classes and APIs at your fingertips, along with short samples illustrating essential programming tasks.
It's a compliment to say that this title resembles a telephone book. With over 1,000 pages (and printed on similar grade of paper), like a phonebook, The Java Developers Almanac is organised alphabetically. Early sections look at Java 2 classes by package, such as graphics (including Java 2D), file I/O, network programming, AWT and Swing. Early sections include several hundred short code excerpts, which provide key programming solutions.
The heart of this text is an A-to-Z compendium of over 2,100 Java classes and a whopping 24,000 methods and properties. Readers get a listing of what's in each class, along with prototype and arguments. As an "almanac" there is no room for explaining what each method does, but by using a clever set of symbols, each listing provides the details of each method (such as which ones are "final," "static" and the like), plus the version of Java in which each method first appeared (JDK 1.0, 1.1, 1.2 or 1.3). These reference sections set a new standard of clarity for documenting classes. (Method and property names are aligned in the middle of the page regardless of return type, a typographic convention that makes it easy to find what you need quickly.)
Later sections provide useful references that list the changes from Java 1.0 through 1.3, as well as PersonalJava, the Java Native Interface (JNI), plus some of the details of the Java Virtual Machine (with a listing of byte codes). An innovative index cross-references all methods and classes (including where objects are used as parameters and return values). Truly encyclopaedic and remarkably well organised, this book is a virtual must-have resource for any serious Java developer. --Richard Dragan, Amazon.com
- Comprehensive reference to Java 2, Standard Edition (J2SE) packages, classes and APIs (including 2,100 classes and 24,000 methods), sample code for common programming tasks, working with graphics and images (including Java 2D), playing audio and MIDI files, Abstract Window Toolkit (AWT) and Swing components, JDBC database basics, directory programming with JNDI/LDAP, file system and file I/O, using the Java reflection APIs, basic socket, URL and networking in Java.
- RMI working with Strings, arrays and collections.
- Unicode, locale and internationalisation support
- documented changes in JDK 1.0 through JDK 1.3, the Java Native Interface (JNI), classes included in PersonalJava, and Java Virtual Machine (JVM) byte codes.
Welcome to the third 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's 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.
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 what other 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: Classes
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.
Part 3: Topics
This 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-Reference This 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? Updates
As 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. 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. 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 and Tracy Russ.