JDK 1.2: Immature, but tons of new abilities

A few more beta releases of the JDK 1.2 may add the necessary maturity, but until then, it's still worth trying the new features and capabilities

The JavaSoft division of Sun Microsystems announced it is moving the next generation JDK from limited early access to its first round of public beta tests, and attempted to clarify the schedule for other key technologies that are moving forward independently of the JDK.

During the first quarter of 1998, Sun plans a follow-up JDK beta version that will round out some of the missing pieces from the first beta, as well as to respond to early developer feedback. A final version is expected during the second calendar quarter.

While early access documentation and comments previously referred to this release as JDK 1.2, JavaSoft's press release for the new JDK (see Resources) avoided the 1.2 moniker, perhaps hinting there is internal discussion over whether there is technical justification and marketing benefit to relabeling the technology as JDK 2.0.

As more and more key Java technologies move forward independently of the JDK, it is becoming a challenge to keep the schedules clear. Along with the first public JDK 1.2 beta, Sun is releasing:

  • JDK 1.1.5 (a performance-tuning release for JDK 1.1)
  • The first public release of the Enterprise JavaBeans specification
  • The final version of JFC's GUI components ("Swing") for JDK 1.1
  • The first early access release of Java Activator

The Resources section of this article includes more information on these releases.

The following table plots out what you can expect from Sun through Q298.

Java Technology Roadmap
Date Technology
December 1997First public beta of JDK 1.2
 JDK 1.1.5: performance tuning release
JFC 1.1 (final version of "Swing" components)
Enterprise JavaBeans Spec. made public
Java Activator early access 1
Q1 1998Second public beta of JDK 1.2
 JDK 1.1.6: further performance tweaks
HotSpot JVM early access
Final Enterprise JavaBeans Spec.
Java Activator early access 2
Java Activator 1.1 final (late Q1)
Java Messaging Service (JMS) Public Spec.
Java Management API (JMAPI) Public Spec.
Java Naming and Directory Interface (JNDI) Final Spec.
Q2 1998Final JDK 1.2 Ships via Java Porting & Tuning Center
 Final JFC included in core Java
Deployable HotSpot JVM available
Java Activator 1.2 early access
Java Messaging Service (JMS) Final Spec.
Java Transaction Service (JTS) Final Spec.
Java Management API (JMAPI) Final Spec.
HotSpot JVM final (Summer, perhaps Q3)

Software and documentation for JDK 1.2 can be downloaded from the JavaSoft Web site by any developer who registers with the Java Developer Connection -- a free service offering access to pre-released software, mailings, and online discussion groups.

The new features: Stepping forward

JDK 1.2 represents a significant step forward in Java's continuing maturity with about a dozen wholly new areas of functionality and enhancements to about 10 existing features. Not all new or enhanced features are complete in this first public beta, so you'll have to await subsequent releases.

New features to look forward to include:

  • Java Foundation Classes (GUI components or "Swing," accessibility, drag-and-drop, and Java 2D)
  • A standard architecture for extensions and the Servlet extension
  • Collections
  • Input methods
  • Version identification
  • Weak references
  • Java interface definition language (IDL)
  • Javadoc templates

Major enhancements have been made to:

  • JavaBeans
  • The Java security model
  • Remote Method Invocation (RMI)
  • Object Serialization
  • Java Sound
  • Java Archive (JAR) file format
  • The Java Native Interface (JNI)

Specific performance enhancements include:

  • Native thread support for Solaris
  • Memory compression for loaded classes
  • Faster memory allocation and garbage collection
  • Monitor speedups
  • A native library JNI port

Features not yet implemented, or not fully implemented in this beta release, include:

  • The Standard Extensions Architecture
  • Java Servlet standard extension
  • Input Method Framework
  • JAR Enhancements
  • A portion of drag-and-drop functionality and Java 2D
  • The JIT compiler for Win32

Boosting performance

JDK 1.2 holds out the hope of performance increases to levels comparable with C++ programs when HotSpot JVM technology is used, according to Jon Kannegaard, vice president of software products at JavaSoft. The new JDK delivers the binary foundation for the upcoming HotSpot JVM, which will be available in a separate download from Sun as a developer's release in the first quarter of 1998.

JDK 1.2 does introduce several architectural changes that should boost performance.

Faster memory allocation and garbage collection -- Faster memory allocation and garbage collection is produced by a thread-local heap cache, which eliminates the need for locking the majority of heap allocations. Memory allocation speed is drastically increased and garbage collection pauses are shorter. Memory consumption is also reduced by sharing constant strings among different classes.

Native libraries -- Native libraries supporting core Java classes, such as AWT, have been rewritten using the Java Native Interface (JNI). That code is more efficient and can run unmodified on different Java virtual machines.

Solaris native thread support -- Solaris native thread support enables the kernel to better schedule native threads over parallel processors, where available. The native threads VM integrates better with native code than the default green threads VM, and the VM can avoid some inefficient remapping of I/O system calls.

Some last-minute advice

This release of the JDK gives developers an idea of the path that Sun is taking in the evolution of Java. Above all else, JavaSoft seems to be extending the reach of Java (with support for native libraries and threads, standardizing extensions architectures, support for Bean-based components, enhanced memory compression for loaded classes) into areas of better and better performance and faster application-creation and -deployment times.

However, developers should expect the early release of JDK 1.2 to run much more slowly than the later releases. But, the experience with JDK 1.1 indicates that the several performance tuning iterations will continue to pay dividends.

Gordon Spencer is a writer and analyst who has covered Open Systems and networked-based computing for nearly a decade.

This story, "JDK 1.2: Immature, but tons of new abilities" was originally published by JavaWorld.

Copyright © 1998 IDG Communications, Inc.

How to choose a low-code development platform