Versions - The Evolution of Java

VERSION NAME CODENAME DATE
JDK 1.0 Oak January 23, 1996
JDK 1.0.2 Java 1
JDK 1.1 February 19, 1997
J2SE 1.2 (Read line no. 6) Playground December 8, 1998
J2SE - Java 2 Platform, Standard Edition
J2EE - Java 2 Platform, Enterprise Edition
J2ME - Java 2 Platform, Micro Edition
J2SE 1.3 Kestrel May 8th, 2000
J2SE 1.4 Merlin February 6th, 2002
Note: J2SE 1.2, J2SE 1.3, J2SE 1.4 called Java 2
J2SE 5.0 (Read line no. 12 - 13) Tiger September 30, 2004
J2SE 1.5.0 - Developer Version
J2SE 5.0 - Product Version
Java SE 6 (Read line no. 15 - 16) Mustang December 11, 2006
Java SE 7 Dolphin July 7, 2011
Java SE 8 18 March 2014
Java SE 9 In 2016 or around March 2017
Java SE 10 around 2018
  1. The first alpha and beta Java public releases in 1995 had highly unstable APIs and ABIs.
  2. The supplied Java web browser was named WebRunner.
  3. Java evolve at an explosive pace, after the release of Java 1.0, the designers of Java had already created Java 1.1.
  4. Java 1.1 redefined the way events are handled by applets and reconfigured many features of the 1.0 library
  5. The next major release of Java was Java 2, where the "2" indicates "second generation"
  6. It may seem odd that the first release of Java 2 used the 1.2 version number.
  7. 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.
  8. 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.
  9. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community Process (JCP)
  10. They uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform.
  11. Over the years changes have been made to the Java Class Library has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5.
  12. Both version numbers "1.5.0" and "5.0" are used to identify the release of the J2SE.
  13. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.
  14. This correspondence continued through later releases, Java 6 = JDK 1.6, Java 7 = JDK 1.7 and so on.
  15. From December 11, 2006, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version number.
  16. Internal numbering for developers remains 1.6 and the version name is Java SE 6 and so on.

Initial Release (versions 1.0 and 1.1)

Major changes include:
  • Java was initially released as the Java Development Kit 1.0
  • Provided a runtime-only package, called the Java Runtime Environment (JRE)
  • Playground (J2SE 1.2 = Java 2 = Java 1.2)

    Major changes include:
  • Rewrite the event handling (add Event Listeners)
  • Change Thread synchronizations
  • Introduction of the JIT-Just in time compilers
  • Kestrel (J2SE 1.3 = Java 2 = Java 1.3)

    Major changes include:
  • HotSpot JVM included
  • HotSpot JVM was first released in April, 1999
  • RMI was modified to support optional compatibility with CORBA
  • JavaSound
  • Java Naming and Directory Interface (JNDI) included in core libraries
  • Java Platform Debugger Architecture (JPDA)
  • Synthetic proxy classes
  • Merlin (J2SE 1.4 = Java 2 = Java 1.4)

    Major changes include:
  • It improved programmer productivity by expanding language features
  • Assertion
  • Regular Expression
  • XML processing
  • Cryptography and Secure Socket Layer (SSL)
  • Non-blocking I/O (NIO)
  • Logging
  • Tiger (J2SE 5 or version 1.5.0)

    Major changes include:
  • Generics - Provides compile-time type safety for collections :and eliminates the drudgery of casting.
  • Autoboxing/unboxing - Eliminates the drudgery of manual conversion between primitive types (such as int) and wrapper types (such as Integer).
  • Enhanced for - Shorten the for loop with Collections use.
  • Static imports - Lets you import all the static part of a class.
  • Annotation/Metadata - Enabling tools to generate code and deployment descriptors from annotations in the source code. This leads to a "declarative" programming style where the programmer says what should be done and tools emit the code to do it. Annotations can be inspected through source parsing or by using the additional reflection APIs added in Java 5.
  • JVM Improvements - Most of the run time library is now mapped into memory as a memory image, as opposed to being loaded from a series of class files. Large portion of the runtime libraries will now be shared among multiple JVM instances.
  • Mustang (version 1.6.0 or Java SE 6)

    Major changes include:
  • Web Services - First-class support for writing XML web service client applications.
  • Scripting - You can now mix in JavaScript technology source code, useful for prototyping. Also useful when you have teams with a variety of skill sets. More advanced developers can plug in their own scripting engines and mix their favorite scripting language in with Java code as they see fit.
  • Database - No more need to find and configure your own JDBC database when developing a database application. Developers will also get the updated JDBC 4.0, a well-used API with many important improvements, such as special support for XML as an SQL datatype and better integration of Binary Large OBjects (BLOBs) and Character Large OBjects (CLOBs) into the APIs.
  • More Desktop APIs - GUI developers get a large number of new tricks to play like the ever popular yet newly incorporated SwingWorker utility to help you with threading in GUI apps, JTable sorting and filtering, and a new facility for quick splash screens to quiet impatient users.
  • Monitoring and Management - The really big deal here is that you don't need to do anything special to the startup to be able to attach on demand with any of the monitoring and management tools in the Java SE platform.
  • Compiler Access - Really aimed at people who create tools for Java development and for frameworks like JavaServer Pages (JSP) or Personal Home Page construction kit (PHP) engines that need to generate a bunch of classes on demand, the compiler API opens up programmatic access to javac for in-process compilation of dynamically generated Java code. The compiler API is not directly intended for the everyday developer, but for those of you deafened by your screaming inner geek, roll up your sleeves and give it a try. And the rest of us will happily benefit from the tools and the improved Java frameworks that use this.
  • Pluggable Annotations allows programmer to write annotation processor so that it can analyse your code semantically before javac compiles. For example, you could write an annotation processor that verifies whether your program obeys naming conventions.
  • Desktop Deployment - At long last, Java SE 6 unifies the Java Plug-in technology and Java WebStart engines, which just makes sense. Installation of the Java WebStart application got a much needed makeover.
  • Security - Java SE 6 has simplified the job of its security administrators by providing various new ways to access platform-native security services, such as native Public KeyInfrastructure (PKI) and cryptographic services on Microsoft Windows for secure authentication and communication, Java Generic Security Services (Java GSS) and Kerberos services for authentication, and access to LDAP servers for authenticating users.
  • The -lities: Quality, Compatibility, Stability - Bug fixes
  • Dolphin (version 1.7.0 or Java SE 7)

    Major changes include:
  • JVM support for dynamic languages, following the prototyping work currently done on the Multi Language Virtual Machine
  • Small language changes (grouped under a project named Coin):
    • Strings in switch
    • Automatic resource management in try-statement
    • Improved type inference for generic instance creation
    • Simplified varargs method declaration
    • Binary integer literals
    • Allowing underscores in numeric literals
    • Catching multiple exception types and rethrowing exceptions with improved type checking
  • Concurrency utilities under JSR 166
  • New file I/O library to enhance platform independence and add support for metadata and symbolic links. The new packages are java.nio.file and java.nio.file.attribute
  • Library-level support for Elliptic curve cryptography algorithms
  • An XRender pipeline for Java 2D, which improves handling of features specific to modern GPUs
  • New platform APIs for the graphics features originally planned for release in Java version 6u10
  • Enhanced library-level support for new network protocols, including SCTP and Sockets Direct Protocol
  • Upstream updates to XML and Unicode

  • | Copyright ©2016 | All Rights Reserved |
    | Design by Uves Khan |

    Free Web Hosting