previews 14 new features of the Java Developers Kit 1.1:
1. JAR Files
JAR (Java Archive) is a platform-independent file format that aggregates
many files into one. Multiple Java applets and their requisite
components (.class files, images and sounds) can be bundled in a JAR
file and subsequently downloaded to a browser in a single HTTP
transaction, greatly improving the download speed. The JAR format also
supports compression, which reduces the file size, further improving the
download time. In addition, the applet author can digitally sign
individual entries in a JAR file to authenticate their origin. It is
fully backward-compatible with existing applet code and is fully
extensible, being written in Java.
Allows the development of localizable applets. Enhancements include the
display of UNICODE characters, a locale mechanism, localized message
support, locale-sensitive date, time, time zone and number handling,
collation services, character set converters, parameter formatting, and
support for finding character/word/sentence boundaries.
The Java Security API is designed to allow developers to incorporate
both low-level and high-level security functionality into their Java
applications. This includes cryptography, key management and access
control. The first release of Java Security in JDK 1.1 will contain a
subset of this functionality, including APIs for digital signatures,
message digests, key management, access control lists, and utilities.
JDK 1.1 will also provide the ability to sign classes and other data
(such as images and sounds).
4. AWT Enhancements
Enhancements are aimed at solving some major AWT deficiencies with a
strong focus on quality and performance. The AWT enhancements will
include the beginnings of a richer infrastructure for larger-scale GUI
development, including APIs for printing, easier/faster scrolling, popup
menus, clipboard (copy/paste), cursors per component, a delegation-based
event model, imaging and graphics enhancements, and more flexible font
support for internationalization. Additionally, the Windows (Win32)
version of AWT has been completely re-written for improved speed,
quality, and consistency with the other platforms.
5. Networking enhancements
Support for selected BSD-style socket options in the java.net base
classes. With JDK 1.1, Socket and ServerSocket are non-final, extendable
classes. New subclasses of SocketException have been added for finer
granularity in reporting and handling network errors. The class
MulticastSocket moves from sun.net to java.net. Also includes general
performance improvements and bug fixes. See Net Enhancements web pages
for design papers and API docs.
6. Remote Method Invocation
Remote Method Invocation (RMI) enables Java objects to have their
methods invoked from Java code running in other virtual machines,
including ones running on other computers. References to such remote
objects can be passed as parameters in RMI calls. RMI uses Object
Serialization to marshal and unmarshal parameters.
7. Object Serialization
Object Serialization extends the core Java Input/Output classes with
support for objects. Object Serialization supports the encoding of
objects and the objects reachable from them into a stream of bytes and
the complementary reconstruction of the object graph from the stream.
Serialization is used for lightweight persistence and for communication
via sockets or Remote Method Invocation (RMI). The default encoding of
objects protects private and transient data, and supports the evolution
of the classes. A class may implement its own external encoding and is
then solely responsible for the external format.
Enables Java code to discover and use information about the fields,
methods and constructors of loaded classes, within security
restrictions. This API accommodates applications that need to discover
and use either the public members of a target object (based on its
runtime class) or the members declared by a given class.
9. Byte and Short Classes
Extends wrapped numbers to accommodate bytes and shorts by adding new
classes Byte and Short. The abstract class Number gets two new concrete
methods: byteValue and shortValue; the default implementations of these
use intValue method.
10. JDBCTM - Java Database Connectivity
Java Database Connectivity is a standard SQL database access interface,
providing uniform access to a wide range of relational databases. It
also provides a common base on which higher level tools and interfaces
can be built. This comes with an "ODBC Bridge" (except on Mac 68K). The
Bridge is a library which implements JDBC in terms of the ODBC standard
C API. See JDBC web pages for the design specs, API docs, and early
11. New Java Native Method Interface
A standard programming interface for writing Java native methods. The
primary goal is binary compatibility of native method libraries across
all Java virtual machine implementations on a given platform.
12. JIT Compiler Interface Document
This document is a write-up of functionality which already existed in
1.0.2. It is for tool developers who are writing native code generators
or other utilities that run inside the Java Virtual machine. It supports
ahead-of-time compilers, re-compilers, and just-in-time code generators.
13. Nested Classes
Provides a simpler syntax for the creation of adapter classes. An
adapter class is a class that implements an interface (or class)
required by an API, and delegates the flow of control back to an
enclosing "main" object. The new language features apply to Java the
concepts of lexical scoping and block structure found in many languages.
14. Performance Enhancements
- Interpreter loop in assembly code on Win32 and Solaris/Sparc.
- Non-contiguous heap support on Mac.
- Monitor speed-ups.
- AWT peer class re-write for Win32.
- Garbage collection of classes.
- Optional use of native threads on Solaris.