Tag Archives: Java Versions

Java: Versions History

Here is a list of all versions of Java and features introduced with each release.

JDK Alpha and Beta

The Java Alpha and Beta version was released in 1995 but they have highly unstable APIs. The supplied Java web browser was named Web-Runner.

JDK 1.0

Java’s first stable version 1.0.2 was released on January 23, 1996. Its code name was Oak and called as java 1.

JDK 1.1

JDK 1.1 version was released on February 19, 1997. It was having some additional features as :

  • The concept of Inner Class
  • Java Beans
  • JDBC
  • RMI
  • The AWT event model was totally reshaped.
  • Reflection (which supported Introspection only, the modification was not possible at run time).
  • JIT (Just In Time) compiler added on Microsoft Windows platforms to produced for JavaSoft by Symantec
  • Internationalization and Unicode support originating from Taligent.

J2SE 1.2

JDK 1.2 version was released on December 8, 1998, called code-name Playground. It was a very big release and replaced JDK to recognize the base platform from J2EE and J2ME. It was having so many additional features as

  • strictfp keyword
  • Java plug-in
  • Java IDL, an IDL implementation for CORBA interoperability
  • Collections framework
  • Core classes added some new Swing graphical API.
  • Sun’s JVM was added with a JIT compiler for the first time to enhance performance.

J2SE 1.3

JDK 1.3 version was released on May 8, 2000, called code-name Kestrel. It was having so many additional features as

  • HotSpot JVM included.
  • RMI was updated to support optional compatibility with CORBA.
  • JNDI (Java Naming and Directory Interface).
  • Java Platform Debugger Architecture (JPDA) included.
  • JavaSound.
  • Synthetic proxy classes.

J2SE 1.4

JDK 1.4 version was released on February 6, 2002, called code-name Merlin. It was first Java Platform which was released under the Java community process and having so many additional features as

  • Improved libraries.
  • Perl regular expressions included.
  • Provided exception chaining (It allows an exception to encapsulate original lower-level exception).
  • IPv6 support (Internet Protocol version 6).
  • Logging API (Specified in JSR 47.)
  • The image I/O API for reading and writing images in formats like JPEG and PNG.
  • XML parser and XSLT processor integrated.
  • Security and cryptography extensions (JCE, JSSE, JAAS) integrated.

J2SE 5.0

J2SE 1.5 version was released on September 30, 2004, called as code-name Tiger also called as Java 5.0. It was having so many additional features as

  • It provided compile-time type safety for collections by using generics and eliminates the need for most typecasts.
  • Used Metadata or annotations.
  • Auto-boxing/unboxing.
  • Enumerations.
  • Enhanced for each loop.
  • Improved semantics of execution for multi-threaded Java programs.
    Static imports.
  • There were also some improvements in standard libraries:
  • Automatic stub generation for RMI objects.
  • Swing: It provided a skinny look and feel.
  • The concurrency utilities in package java.util.concurrent.
  • Scanner class added for parsing data from various input streams and buffers.
  • Java 5 was the last release of Java which officially supported the older versions Microsoft Windows 9x line i.e (Windows 95, Windows 98, Windows ME) and window Vista
  • Apple Mac OS X 10.5 by default having java version 5 installed.

Java SE 6

Java SE version was released on December 11, 2006, called as code-name Mustang also called as Java SE 6. It was having so many additional features as

  • Dropped the support for older Win9x versions.
  • Scripting Language Support.
  • Generic API for tight integration with scripting languages.
  • Improved Web Service support.
  • JDBC 4.0 support.
  • Now invoke Java Compiler by using Java Compiler API pro-grammatically.

Java SE 7

Java SE version was released on July 28, 2011, called code-name Dolphin also called as Java SE 7. It was having so many additional features as

  • JVM support for dynamic languages.
  • Compressed 64-bits pointer.
  • Strings added in the switch.
  • Automatic resource management in try-statement.
  • Underscores allowed in numeric literals.
  • Binary integer literals.
  • Improved type interface for creating a generic instance. (also called diamond operator )
  • Improved caching and throwing. (catch multiple exceptions and re-throw with improved type checking)
  • Provided Java Deployment rule sets.

Java SE 8

Java SE version was released on March 18, 2014, called code-name Spider. It was having so many additional features as

Java SE 9

Java SE version was released on September 21, 2017, developed by Oracle. It was having so many additional features as

  • Java 9 would include better support for better native code integration, multi-gigabyte heaps, a different default garbage collector and a self-tuning JVM.
  • Modularization of the JDK under Project Jigsaw.
  • Provided Money and Currency API.
  • Tight integration with JavaFX.
  • Java implementation of reactive streams.
  • More Concurrency Updates.
  • Provided Java Linker.
  • Automatic scaling and sizing.

Java SE 10

Java SE version was released on March 20, 2018, developed by Oracle. It was having so many additional features as

  • Remove primitive data types and move towards 64-bit addressable arrays to support large data sets.
  • Local-Variable Type Inference
  • Experimental Java-Based JIT Compiler: This is a Graal dynamic compiler to the integration with the Linux x64 platform.
  • Application Class-Data Sharing: This reduces the startup and footprint for java applications by placing application classes in shared archives.
  • Time-Based Release Versioning
  • Parallel Full GC for G1
  • Garbage-Collector Interface
  • Additional Unicode Language-Tag Extensions
  • Root Certificates
  • Thread-Local Handshakes
  • Heap Allocation on Alternative Memory Devices
  • Remove the Native-Header Generation Tool – javah
  • Consolidate the JDK Forest into a Single Repository

Java SE 11

Java SE version was released on September 25, 2018, and the version is open for bug fixes. It was having so many additional features as

  • JEP 309: Dynamic class-file constants
  • JEP 318: Epsilon: a no-op garbage collector
  • JEP 323: Local-variable syntax for lambda parameters
  • JEP 331: Low-overhead heap profiling
  • JEP 321: HTTP client (standard)
  • JEP 332: Transport Layer Security (TLS) 1.3
  • JEP 328: Flight recorder
  • JEP 333: ZGC: a scalable low-latency garbage collector
  • CORBA, JavaFX, and  Java EE modules have been removed from JDK
  • JEP 335: Deprecated the Nashorn JavaScript engine
  • Unicode 10.0.0 support (while the current version is Unicode 11.0.0, it’s only in Java 12)
  • Java web start and applets are no longer available.

Java SE 12

Java SE version was released on March 19, 2019, and the version is open for bug fixes. It was having so many additional features as

  • JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector
  • JEP 230: Microbenchmark Suite
  • JEP 325: Switch Expressions
  • JEP 334: JVM Constants API
  • JEP 340: One AArch64 Port, Not Two
  • JEP 341: Default CDS Archives
  • JEP 344: Abortable Mixed Collections for G1
  • JEP 346: Return Unused Committed Memory from G1 Promptly

Java SE 13

Java SE version was released on Sep 19, 2019, and the version provided lots of bug fixes and also includes many additional features as

  • JEP-350: Dynamic CDS Archives
  • JEP-351: ZGC: Uncommit Unused Memory
  • JEP-353: Reimplement the Legacy Socket API
  • JEP-354: Switch Expressions (Preview Feature)
  • JEP-355: Text Blocks (Preview Feature)
  • FileSystems.newFileSystem() Method
  • Dom and SAX Factories with Namespace Support
  • Support for Unicode 12.1



Java Overview

Java is an open-source, general-purpose, class-based, object-oriented programming language and platform developed by James Gosling at Sun Micro-systems (first release on 1995), Now it’s acquired by Oracle Corporation.

Platform: Any software or hardware environment in which a program executes, is known as a platform. Since Java has a JRE(Java Runtime Environment) and API, it is called a platform.


  • Java is not a pure object-oriented language because it’s having a primitive type and.
  • Java does not support pointers but  C/C++ supports it. Java allows the garbage collector to relocate unreachable referenced objects to clear from memory, ensures type safety and security.
  • Unlike C++, Java does not support operator overloading or multiple inheritances for classes, though multiple inheritances are supported for interfaces.

Where to use JAVA?

These days Java used on so many technical devices:

  1. Desktop Applications such as media player, acrobat reader, antivirus, etc.
  2. Web Applications such as icicibank.com, irctc.co.in, javatpoint.com, etc.
  3. Enterprise Applications such as banking applications.
  4. Gaming
  5. Mobile
  6. Embedded System
  7. Smart Card
  8. Robotics etc.

What type of Java application?

Java can be used to develop four types of application development:

  1. Standalone Application (Media player, antivirus, etc. AWT and Swing)
  2. Web Application (Servlet, JSP, Struts, Spring, Hibernate, JSF)
  3. Enterprise Application (EJB provides high-level security, load balancing, and clustering)
  4. Mobile Application (Android, Java ME)

What is the main Java Platform/ Edition?

There are four platforms and edition in Java :

  • Java SE (Java Standard Edition): it provides a programming platform with the supports of APIs such as java.lang, java.io, java.net, java.util, java.sql, java.math etc. It includes core topics like OOPs, String, Regex, Exception, Inner classes, Multi threading, I/O Stream, Networking, AWT, Swing, Reflection, Collection, etc
  • Java EE (Java Enterprise Edition): It’s used to develop Web and Enterprise application development. Use Servlet, JSP, JPA, Web Services, EJB, etc.
  • Java ME (Java Micro Edition): It’s a micro platform to develop mobile-based applications.
  • Java FX: It is used light-weight user interface API to develop rich internet applications.

Features of Java

  • Simple: Java is designed to easy to learn. If you know the basics OOPS Concepts, it would easy to master.
  • Object-Oriented: Everything in Java is an object. Java can be easily extended to any level because of the Object model.
  • Platform Independent: When Java is compiled, it is not compiled into a platform-specific machine, rather into a platform-independent byte code that can run on any JVM in OS.
  • Secure: Java authentication technique is based on public-key encryption and secure feature enables to develop of virus-free, temper-free systems. (No Pointer, run inside of JVM sandbox, byte code verifier, security manager)
  • Architecture Neutral: Java compiler generates architecture-neutral object file format (byte code) which makes compiled code executable on any machine where Java presents. Write Once Run Anywhere (WORA).
  • Portable: Programs written for the Java platform must run similarly on any combination of hardware and operating system. (bytecode)
  • Robust: Java eliminates error-prone situations by emphasizing mainly on compile-time error checking and run time checking.
  • Multi-threaded: Java’s multi-threaded feature allows us to perform multi-task simultaneously which makes application so interactive.(Mobile)
  • Interpreted: JIT (Just in Time) compiler use to translated byte code to machine instructions and is not stored anywhere. The development process is more rapid and analytical since linking is an incremental and light-weight process.
  • High Performance: JIT (Just in Time) compiler use to translated byte code to machine language as per need, which enables high performance.
  • Distributed: Java is designed for the distributed environment over the internet. (EJB & RMI)
  • Dynamic: Java is considered to be more dynamic in comparison to C or C++. Java supports dynamic loading of classes on demand. Java supports dynamic compilation and automatic memory management.

    Java Versions

    Here is list of major java version and release date.

    • JDK 1.0 (January 23, 1996)
    • JDK 1.1 (February 19, 1997)
    • J2SE 1.2 (December 8, 1998)
    • J2SE 1.3 (May 8, 2000)
    • J2SE 1.4 (February 6, 2002)
    • J2SE 5.0 (September 30, 2004)
    • Java SE 6 (December 11, 2006)
    • Java SE 7 (July 28, 2011)
    • Java SE 8 (March 18, 2014)
    • Java SE 9 (September 21, 2017)
    • Java SE 10 (March 20, 2018)
    • Java SE 11 (September 25, 2018)
    • Java SE 12 (March 19, 2019)
    • Java SE 13 (September 19, 2019)