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
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:
- Java is now more dynamic. An expanded Class
class, in conjunction with the new java.lang.reflect
package, allows objects to access methods and variables of
objects that they were not compiled with.
- There are classes in java.io that
build on the new dynamic capabilities to provide the ability
to read and write objects as streams of bytes.
- There is increased support for internationalization. The
support includes a Locale class and classes
to format and parse data in locale-specific ways. There is also
support for loading external locale-specific resources, such as
- The java.util.zip package provides the ability
to read and write compressed files.
- The java.math package provides the
ability to perform arithmetic operations to any degree of precision
that is necessary.
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,
for details on changes.
Specifically, this book completely covers the following packages:
- java.io (1.0 and 1.1)
- java.lang (1.0 and 1.1)
- java.lang.reflect (new in 1.1)
- java.math (new in 1.1)
- java.net (1.0 and 1.1)
- java.text (new in 1.1)
- java.util (1.0 and 1.1)
- java.util.zip (new in 1.1)
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
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.