top of page
Ahmed LAOUEDJ
Java/J2EE Teacher & Senior IT Consultant

Java Evolution

  • 12 déc. 2017
  • 4 min de lecture

The latest version of Java is Java SE 9 released in September 2017. The initial version (JDK Alpha and Beta) was released in 1995. Java has made quite a journey from version 1 to 9. Let’s look in detail what were the improvements or features added in each version in this article Java Evolution.

You might think what’s with the character in the above picture and why is it here? Well the character that you can see above is Java’s mascot Duke.

How Java was created

In 1991, a research group at Sun Microsystems, as a part of their Green project, was working to develop software to control consumer electronic devices (embedded systems). The goal was to connect them in a network and establish communication between them. The first prototype developed by Sun Microsystems was a device called Star 7 which looked like a remote. The initial intent was to use C++ to control the Star 7. But, as a result of frustration with C++, one of the members of Green project, James Gosling invented a new language called Oak which was later renamed to Java.

Why the name Oak? Well, as per rumors, there happened to be a Oak tree outside the window at which James Gosling was working. Hence the name Oak. Later they found out that there was already a language by the name Oak. So, they renamed it to Java.

JDK 1.0

The initial version of Java was JDK 1.0 which was released in 1996. Unlike other languages which evolve in small increments, Java continued to evolve at a faster pace. By the time JDK 1.0 was released, the developers of Java had already created JDK 1.1.

JDK 1.1

Released in 1997. Java 1.1 (JDK 1.1) added many new library elements, redefined the way events are handled and reconfigured many of the features of the 1.0 library :

- AWT event model

- Inner classes

- JavaBeans

- JDBC

- RMI

- Reflection

- JIT

J2SE 1.2

The next major release was Java 2 (also known as J2SE 1.2) which was released in 1998. 1.2 is the internal version number for Java library. With Java 2, Sun repackaged the Java product as J2SE (Java 2 Platform Standard Edition). Major changes in J2SE 1.2 are:

  • Strictfp keyword

  • Swing API

  • Sun’s JVM equipped with JIT

  • Java Plug-in

  • Java IDL

  • Collections framework

J2SE 1.3

The first major upgrade made to the original version Java 2 was J2SE 1.3 which was released in 2000. This version introduced new APIs like JNDI, JPDA and JavaSound. Although this version introduced a small set of changes :

  • HotSpot

  • RMI Support of CORBA

  • Synthetic proxy classes

J2SE 1.4

Next major upgrade J2SE 1.4 which was released in 2002, further enhanced Java. Several important features were added in this release. They are:

  • Assert

  • Regular expression

  • Exception chaining

  • IPv6 support

  • Non blocking I/O

  • Logging API

  • Image I/O API

  • XML Parser and XSLT processor (JAXP)

  • Security and cryptography (JCE, JSSE, JAAS)

  • Java Web Start

  • Preferences API (java.util.prefs)

J2SE 5 (TIGER)

Next release of Java was J2SE 5 which was released in 2004. Compared to other releases this one was revolutionary. J2SE 5 fundamentally expanded the scope, power and range of the language. The major improvements and features in this release are:

  • Generics

  • Annotations

  • Autoboxing(Unboxing)

  • Enumerations

  • Varargs

  • Enhanced for each loop

  • Static import

  • Formatted I/O

  • New Java model memory

  • Concurrency utilities

  • Scanner

J2SE 6 (MUSTANG)

Next release was Java SE 6 which was released in 2006. Note that Sun changed the name of the Java platform. The official product name was Java Platform, Standard Edition 6. The Java Developer’s kit was called JDK 6. The internal developer version number is 1.6. This version did not add any major features. But, it enhanced the API libraries, added several new packages and made improvements to the runtime :

  • Scripting Language support

  • Performance improvements for core platform and Swing

  • Improve Web service through JAX-WS

  • JDBC 4.0 support

  • JAXB 2.0

J2SE 7 (DOLPHIN)

Next major release was Java SE 7 (codenamed Dolphin) which was released in 2011 after Sun Microsystems was acquired by Oracle. Java SE 7 contains many new features and enhancements which developed as a part of Project Coin. The new features added in version 7 are as follows:

  • String in switch

  • Binary integer literals.

  • Underscores in numeric literals

  • Automatic resource management in try-statement

  • Improved type inference for generic instance creation, aka the diamond operator <>

  • Simplified varargs method declaration

  • Allowing underscores in numeric literals

  • Catching multiple exception types and rethrowing exceptions with improved type checking

  • Addition of Fork/Join framework for NIO (New I/O) which supports parallel programming.

  • Upgrade to the Java runtime system that supports non-Java languages.

J2SE 8 (SPIDER)

Next major release is Java SE 8 (codenamed as Spider) which was released in 2014. Java 8 is a giant step forward for the Java programming language. A lot of features and enhancements were included. Among them the important ones are:

  • Lambda expressions

  • Method references

  • Default Methods

  • A new stream API

  • Optional class (java.util package)

  • A new Date/Time API

  • Nashorn, the new JavaScript engine

  • Removal of permanent generation (in memory)

J2SE 9

Final major release till date is Java SE 9 (or Java 9), following are the features or improvements in Java 9:

  • Modularity

  • Developer Convenience

  • Strings

  • Diagnostics

  • JVM options

  • Logging

  • Javadoc

  • JavaScript/HTTP

  • Native Platform

  • JavaFX

  • Images

  • Unicode

J2SE 10 (AKA Java 18.3)

Java 10 will use the new versioning convention set out by Oracle, this will see the version numbers following a YY.M format. So far the versions announced using this format are 18.3 non-LTS in March 2018 and 18.9 LTS in September 2018.

There is speculation of introducing objects without identity (value types),as well as moving towards 64-bit addressable arrays to support large data sets:

  • JSR 354: Money and Currency API


 
 
 

Commentaires


Ancre 1
  • LinkedIn Social Icon
  • Facebook Black Round
  • Google+ Black Round
  • Tumblr Black Round
bottom of page