This book is a reference manual for the fundamental classes in the Java programming environment; it covers version 1.1 of the Java API. We've defined fundamental classes to mean those classes in the Java Development Kit (JDK) that every Java programmer is likely to need, minus the classes that comprise the Abstract Window Toolkit (AWT). (The classes in the AWT are covered by a companion volume, the Java AWT Reference, from O'Reilly & Associates.) Thus, this book covers the classes in the java.lang and java.io packages, among others, and is essential for the practicing Java programmer.
This is an exciting time in the development of Java. Version 1.1 introduces a massive amount of infrastructure that more than doubles the size of the core Java APIs. This new infrastructure provides many new facilities, such as:
There are also more ways to package and distribute Java programs. In addition to being able to build command-line based applications and applets that are hosted by browsers, we now have the Java Servelet API that allows Java programs to function as part of a web server. Furthermore, the nature of applets may be changing. Instead of waiting for large applet to be downloaded by a browser, we now have push technologies such as Marimba's Castanet that ensure that the most current version of an applet is already on our machine when we want to run it.
Many new uses for Java have appeared or are on the horizon. For example, NASA is using Java applets to monitor telemetry data, instead of building more large, dedicated hardware consoles. Cellular phone manufacturers have committed to making cellular phone models that support Java, so in the future we may see Java programs that run on cellular phones and allow us to check e-mail or view location maps. Many additional APIs are also on the way, from Sun and other companies. These APIs not only supply infrastructure, but also provide frameworks for building domain-specific applications, in such areas as electronic commerce and manufacturing.
This book is about the classes that provide the most fundamental infrastructure for Java. As you use this book, we hope that you will share our enthusiasm for the richness of what is provided and the anticipation of what is yet to come.
The Java Fundamental Classes Reference is the definitive resource for programmers working with the core, non-AWT classes in Java. It covers all aspects of these fundamental classes as of version 1.1.1 of Java. If there are any changes to these classes after 1.1.1 (at least one more patch release is expected), we will integrate them as soon as possible. Watch the book's web site, http://www.ora.com/catalog/javafund/, for details on changes.
Specifically, this book completely covers the following packages:
As you can see from the list above, this book covers four packages that are completely new in Java 1.1. In addition, it includes material on all of the new features in the four original 1.0 packages. Here are the highlights of what is new in Java 1.1:
This package contains the new Byte, Short, and Void classes that are needed for the new Reflection API. The Class class also defines a number of new methods for the Reflection API. Chapter 12, The java.lang Package, contains reference material on all of the classes in the java.lang package.
This package contains a number of new classes, mostly for object serialization and character streams. Chapter 11, The java.io Package, contains reference material on all of the classes in the java.io package.
This package contains a new MulticastSocket class that supports multicast sockets and several new exception types for more detailed networking exceptions. Chapter 15, The java.net Package, contains reference material on all of the classes in the java.net package.
This package includes a handful of new classes for internationalization, such as Locale and ResourceBundle. The package also defines the base classes that support the new AWT event model. The new Calendar and TimeZone classes provide increased support for working with dates and times. Chapter 17, The java.util Package, contains reference material on all of the classes in the java.util package.
This new package defines classes that implement the bulk of the new Reflection API. The classes in the package represent the fields, methods, and constructors of a class. Chapter 13, The java.lang.reflect Package, contains reference material on all of the classes in the java.lang.reflect package.
This new package includes two classes that support arithmetic: one with arbitrarily large integers and another with arbitrary-precision floating-point numbers. Chapter 14, The java.math Package, contains reference material on all of the classes in the java.math package.
This new package contains the majority of the classes that implement the internationalization capabilities of Java 1.1. It includes classes for formatting dates, times, numbers, and textual messages for any specified locale. Chapter 16, The java.text Package, contains reference material on all of the classes in the java.text package.
This new package defines classes that support general-purpose data compression and decompression using the ZLIB compression algorithms, as well as classes that work with the popular GZIP and ZIP formats. Chapter 18, The java.util.zip Package, contains reference material on all of the classes in the java.util.zip package.