The initial release of Java was nothing short of revolutionary,
but it did not mark the end of Java’s era of rapid innovation. Unlike most
other software systems that usually settle into a pattern of small, incremental
improvements, Java continued to evolve at an explosive pace. Soon after the
release of Java 1.0, the designers of Java had already created Java 1.1. The features
added by Java 1.1 were more significant and substantial than the increase in the
minor revision number would have you think. Java 1.1 added many new library elements,
redefined the way events are handled, and reconfigured many features of the 1.0
library. It also deprecated (rendered obsolete) several features originally
defined by Java 1.0. Thus, Java 1.1 both added to and subtracted from
attributes of its original specification.
The next major release of Java was Java 2, where the “2”
indicates “second generation.” The creation of Java 2 was a watershed event,
marking the beginning of Java’s “modern age.” The first release of Java 2
carried the version number 1.2. It may seem odd that the first release of Java
2 used the 1.2 version number. The reason is that it originally referred to the
internal version number of the Java libraries, but then was generalized to
refer to
the entire release. With Java 2, Sun repackaged the Java
product as J2SE (Java 2 Platform Standard Edition), and the version numbers
began to be applied to that product.
Java 2 added support for a number of new features, such as
Swing and the Collections Framework, and it enhanced the Java Virtual Machine
and various programming tools. Java 2 also contained a few deprecations. The
most important affected the Thread class in which the methods suspend( ), resume(
), and stop( ) were deprecated.
J2SE 1.3 was the first major upgrade to the original Java 2
release. For the most part, it added to existing functionality and “tightened
up” the development environment. In
general, programs written for version 1.2 and those written
for version 1.3 are source-code compatible. Although version 1.3 contained a
smaller set of changes than the preceding three major releases, it was
nevertheless important.
The release of J2SE 1.4 further enhanced Java. This release
contained several important upgrades, enhancements, and additions. For example,
it added the new keyword assert, chained exceptions, and a channel-based I/O
subsystem. It also made changes to the Collections Framework and the networking
classes. In addition, numerous small changes were made throughout. Despite the
significant number of new features, version 1.4 maintained nearly 100 percent
source-code compatibility with prior versions.
The next release of Java was J2SE 5, and it was revolutionary.
Unlike most of the previous Java upgrades, which offered important, but measured
improvements, J2SE 5 fundamentally expanded the scope, power, and range of the
language. To grasp the magnitude of the changes that J2SE 5 made to Java,
consider the following list of its major new features:
Generics
Annotations
Autoboxing and auto-unboxing
Enhanced, for-each style for loop
Variable-length arguments (varargs)
Static import
Formatted I/O
Concurrency utilities
This is not a list of minor tweaks or incremental upgrades.
Each item in the list represents a significant addition to the Java language.
Some, such as generics, the enhanced for, and varargs, introduce new syntax
elements. Others, such as autoboxing and auto-unboxing, alter the
semantics of the language. Annotations add an entirely new dimension to
programming. In all cases, the impact of these additions went beyond their
direct effects. They changed the very character of Java itself.
The importance of these new features is reflected in the use
of the version number “5.” The next version number for Java would normally have
been 1.5. However, the new features were so significant that a shift from 1.4
to 1.5 just didn’t seem to express the
magnitude of the change. Instead, Sun elected to increase
the version number to 5 as a way of emphasizing that a major event was taking
place. Thus, it was named J2SE 5, and the developer’s kit was called JDK 5. However,
in order to maintain consistency, Sun decided to use 1.5 as its internal
version number, which is also referred to as the developer version number. The
“5” in J2SE 5 is called the product version number.
Java SE 6
The newest release of Java is called Java SE 6, and the material
in this book has been updated to reflect this latest version of Java. With the
release of Java SE 6, Sun once again decided to change the name of the Java
platform. First, notice that the “2” has been dropped. Thus, the platform now
has the name Java SE, and the official product name is Java Platform, Standard
Edition 6. As with J2SE 5, the 6 in Java SE 6 is the product version number. The
internal, developer version number is 1.6.
Java SE 6 builds on the base of J2SE 5, adding incremental
improvements. Java SE 6 adds no major features to the Java language proper, but
it does enhance the API libraries, add several new packages, and offer
improvements to the run time. As it relates to this book, it is the changes to
the core API that are the most notable. Many of the packages have new classes,
and many of the classes have new methods. These changes are indicated throughout
the book. In general, the release of Java SE 6 serves to further solidify the advances
made by J2SE 5.
A Culture of Innovation
Since the beginning, Java has been at the center of a culture
of innovation. Its original release redefined programming for the Internet. The
Java Virtual Machine (JVM) and bytecode changed the way we think about security
and portability. The applet (and then the servlet) made the Web come alive. The
Java Community Process (JCP) redefined the way that new ideas are assimilated
into the language. The world of Java has never stood still for very long. Java
SE 6 is the latest release in Java’s ongoing, dynamic history.
No comments:
Post a Comment