The Java 2 Platform now contains two clases which provide API for
performing general numeric operations.
java.lang.StrictMath - Class java.lang.StrictMath has the same API as old class
java.lang.Math, which was present previous versions of the Java platform.
Unlike class Math, however, StrictMath is defined to
return bit-for-bit reproducible results in all implementations.
java.lang.Math -
Class java.lang.Math provides the same set of API as does
class StrictMath. However, unlike some of the numeric functions of
class StrictMath, all implementations of the equivalent functions
of class Math are not defined to return the bit-for-bit same results,
but can vary within specified constraints.
This permits better-performing implementations where strict
reproducibility is not required.
Two new classes have been added to the Java 2 Platform to provide
an API for a timer facility which can be used for purposes such as
animations, human interaction timeouts, on-screen clocks and calendars,
work-scheduling routines, reminder facilities, and more.
Added java.util.Collections.EMPTY_MAP.
Previously, there were constant convenience implementations for the empty Set
and List, but no corresponding implementation for Map.
The following special-purpose implementation has also been added:
Added Map
constuctor for WeakHashMap. The
Map interface dictates that most
Map implementations should have a "copy constructor" that takes a Map
argument. WeakHashMap lacked such a constructor in the 1.2 release.
Sophisticated applications often require the ability to perform
specific actions when the virtual machine shuts down, whether due to
voluntary exit or involuntary termination. Typical actions include
cleanly closing down network connections, saving session state,
and deleting temporary files. Every major operating system provides
the means for native applications to do this, though of course the
details vary from platform to platform. Three methods have been
added to java.lang.Runtime to provide a simple and portable
interface to these facitilies. The new methods are:
The previous implementation of caching downloaded Jar files
created problems for long-running server application and for RMI.
Each open JarURLConnection creates a temporary local file that
holds Jar-file date, and a JarFile object is created on top of the
temporary file. Because the open file handle/descriptor on
each temporary file was never closed, the files could quickly
take up disk space for long-running server applications. The
new API provides a solution for this problem by supporting
a new "delete-on-close" mode for opening Zip and Jar files.