JDK 1.1 New Feature Summary

These are the new features in version 1.1 of the JDK. All of the APIs listed here are part of the core Java API, which means they will be available on all platforms and operating systems where the Java 1.1 Virtual Machine is present.

  1. Internationalization
    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.
  2. Security and Signed Applets
    The Java Security API is designed to allow developers to incorporate both low-level and high-level security functionality into their Java applications. The first release of Java Security in JDK 1.1 contains a subset of this functionality, including APIs for digital signatures and message digests. In addition, there are abstract interfaces for key management, certificate management and access control. Specific APIs to support X.509 v3 certificates and other certificate formats, and richer functionality in the area of access control, will follow in subsequent JDK releases.
           JDK 1.1 also provides a tool that can sign Java ARchive (JAR) files, which can contain classes and other data (such as images and sounds). The appletviewer allows any downloaded applets in JAR files signed (using the tool) by a trusted entity to run with the same full rights as local applications. That is, such applets are not subject to the "sandbox" restrictions of the original Java security model. Later releases will provide more sophisticated security policies, including greater granularity in the allowable trust levels.
  3. AWT Enhancements
    Enhancements are aimed at solving some major AWT (Abstract Window Toolkit) 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.
  4. JavaBeansTM
    The JavaBeans APIs define a software component model for Java allowing third party ISVs to create and ship Java components that can be composed together into applications by end users.
  5. JAR File Format
    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.
  6. 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.
  7. IO Enhancements
    The I/O package has been extended with character streams, which are like byte streams except that they contain 16-bit Unicode characters rather than eight-bit bytes. Character streams make it easy to write programs that are not dependent upon a specific character encoding, and are therefore easy to internationalize. Nearly all of the functionality available for byte streams is also available for character streams.
  8. Math Package
    The math package provides two new classes: BigInteger and BigDecimal. BigInteger numbers are immutable arbitrary-precision integers, which provide analogs to all of Java's primitive integer operators, and all relevant static methods from java.lang.Math. Additionally, BigInteger numbers provide operations for modular arithmetic, GCD calculation, primality testing, prime generation, single-bit manipulation, and a few other odds and ends.
    BigDecimal numbers are immutable, arbitrary-precision signed decimal numbers, suitable for monetary calculations. BigDecimal numbers provide operations for basic arithmetic, scale manipulation, comparison, format conversion and hashing.
  9. Remote Method Invocation
    RMI enables the programmer to create distributed Java-to-Java applications, in which the methods of remote Java objects can be invoked from other Java virtual machines, possibly on different hosts. A Java program can make a call on a remote object once it obtains a reference to the remote object, either by looking up the remote object in the bootstrap naming service provided by RMI or by receiving the reference as an argument or a return value. A client can call a remote object in a server, and that server can also be a client of other remote objects. RMI uses Object Serialization to marshal and unmarshal parameters and does not truncate types, supporting true object-oriented polymorphism.
  10. 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.
  11. Reflection
    Enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on their underlying counterparts on objects, within security restrictions. The API accommodates applications that need access to either the public members of a target object (based on its runtime class) or the members declared by a given class.
  12. 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.
  13. Inner 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. Java Native Interface
    A standard programming interface for writing Java native methods and embedding the Java virtual machine into native applications. The primary goal is binary compatibility of native method libraries across all Java virtual machine implementations on a given platform.
  15. Performance Enhancements
  16. Miscellaneous

JDK 1.2 New Feature Summary

JDK 1.2 is a major Java API release of the Java Development Kit, with these new features taking it beyond JDK 1.1.x. Not all of these features are fully implemented in this beta release. These features are divided into Core Platform and Standard Extensions.

Core Platform

The Core Platform will be available on all Java Compatible systems supporting 1.2.
  1. Security Enhancements

  2. Swing (JFC)

  3. Java 2D (JFC)

  4. Accessibility (JFC)

  5. Drag & Drop (JFC)

  6. Application Services (JFC)

  7. Collections

  8. Extensions Framework

  9. JavaBeansTM Enhancements

  10. Input Method Framework

  11. Version Identification

  12. RMI Enhancements

  13. Serialization Enhancements

  14. Reference Objects

  15. Audio Enhancements

  16. Java IDL

  17. Performance Enhancements

  18. JAR Enhancements

  19. JNI Enhancements

  20. Reflection Enhancements

  21. Java Virtual Machine Debugger Interface

  22. JDBC Enhancements

Extensions Standards

Standard Extensions extend the Java Platform with capabilities beyond what is provided within the Java core platform. The Java Servlet API (described below), is one of many planned Standard Extensions that will be available from Sun's JavaSoft. Standard extensions must conform to the Extension Architecture.


Several of the JDK tools have improvements; the one listed here has a substantial design change and corresponding documentation.