Explain Evolution And Features of Java, JAVA SE 6
In This Topic & Blog Having Any Query Then Post your Comment and Suggestion Below

The Evolution of Java
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
• Enumerations
• 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.
Labels: Java - J2SE