History of Java

By | September 29, 2021
History of Java

Java was earlier started as an Oak project by James Gosling in 1995. James started this technology to implement the virtual machine with the C like notation but simpler than C/C++. This was basically designed for developing interactive television, digital devices which later on used for internet programming. It is secure and allows network and file access. Java was later incorporated in by web browsers for supporting applet applications.

Java language ensures high-performance, portability, cross-platform, robust, multithreaded, dynamic, interpreted and many more features. The java project was started by Gosling and his team in the early ’90s and the team was known as the green team. This language was initially designed for small systems. Later on, the language was named Oak.

Why it was named as Oak

Oak was considered as the symbol of strength for many countries, this is why Gosling named it Oak. But in 1995, Oak was renamed as Java as Oak was already used by Oak technologies.

Why renamed as Java

The team gathered to choose a name and suggested words that reflect the features of the language. Java is an Indonesian island which is famous for the java coffee and the name came up while having the coffee which is unique. This name was preferred over other names. Java was released in 1995 for the first time and considered to be the best 10 products in 1995.

Later, many versions have been released with additional features and are now one of the widely used languages in almost every technology field.

Vamware

Java Version History

Version Release date End of Free Public Updates Extended

Support Until

JDK Beta 1995 ? ?
JDK 1.0 January 1996 ? ?
JDK 1.1 February 1997 ? ?
J2SE 1.2 December 1998 ? ?
J2SE 1.3 May 2000 ? ?
J2SE 1.4 February 2002 October 2008 February 2013
J2SE 5.0 September 2004 November 2009 April 2015
Java SE 6 December 2006 April 2013 December 2018
Java SE 7 July 2011 April 2015 July 2022
Java SE 8 (LTS) March 2014 January 2019 for Oracle (commercial)

Vamware

December 2020 for Oracle (personal use)

At least May 2026 for AdoptOpenJDK

At least June 2023 for Amazon Corretto

December 2030
Java SE 9 September 2017 March 2018 for OpenJDK N/A
Java SE 10 March 2018 September 2018 for OpenJDK N/A
Java SE 11 (LTS) September 2018 At least August 2024 for Amazon Corretto

October 2024 for AdoptOpenJDK

September 2026
Java SE 12 March 2019 September 2019 for OpenJDK N/A
Java SE 13 September 2019 March 2020 for OpenJDK N/A
Java SE 14 March 2020 September 2020 for OpenJDK N/A
Java SE 15 September 2020 March 2021 for OpenJDK N/A
Java SE 16 March 2021 September 2021 for OpenJDK N/A
Java SE 17 (LTS) September 2021 TBA TBA

Features of different versions

1. JDK 1.1

This version includes-

  • Provide tools for the AWT event model
  • Additional inner classes
  • JavaBeans, JDBC, RMI
  • The reflection which supported Introspection only, no modification at runtime was possible.
  • JIT (Just In Time) compiler produced for JavaSoft by Symantec
  • Supports Internationalisation and Unicode

2. J2SE 1.2

This version includes below additional feature-

  • Introduces strictfp keyword
  • the Swing graphical API was integrated into the core classes
  • Sun’s JVM was equipped with a JIT compiler
  • Java plug-in
  • introduces IDL implementation for CORBA interoperability
  • Introduces collections framework

3. J2SE 1.3

This version includes below changes-

  • HotSpot JVM included
  • Modified RMI to support compatibility with CORBA
  • Java Naming and Directory Interface (JNDI) included in core libraries
  • Java Platform Debugger Architecture (JPDA)
  • JavaSound and synthetic proxy classes.

4. J2SE 1.4

This version includes below changes-

  • Regular expressions modelled according to Perl regular expressions
  • allows encapsulating original lower-level exception
  • Provides Internet Protocol version 6 (IPv6) support
  • Non-blocking I/O (Java)
  • The image I/O API for reading and writing images in formats like JPEG and PNG
  • Integrated XML parser and XSLT processor (JAXP)
  • Integrated security and cryptography extensions
  • Java Web Start included
  • Preferences API (java.util.prefs)

5. J2SE 5.0

This version includes below features-

  • provides compile-time type safety for collections which eliminates the need for most type conversion
  • Provides Metadata that allows language constructs such as classes and methods to be tagged with additional data,
  • Autoboxing/unboxing: automatic conversions between primitive types
  • Enumerations: the enum keyword creates a typesafe, ordered list of values
  • Varargs: the last parameter of a method can be declared using a type name followed by three dots
  • Enhanced for each loop: the for loop syntax is extended with special syntax for iterating over each member
  • Static imports

6.Java SE 6

This version includes-

  • Scripting Language Support and built-in Mozilla JavaScript Rhino integration.
  • Better performance improvements for the core platform and Swing.
  • Improved Web Service support through JAX-WS
  • JDBC 4.0 support
  • Java Compiler API allowing a java program to select and invoke a Java Compiler programmatically.
  • Upgrade of JAXB to version 2.0:
  • Support for pluggable annotations
  • GUI improvements like the integration of SwingWorker in the API, table sorting and filtering, and true swing double-buffering
  • JVM improvements include synchronization and compiler performance optimizations

7. Java SE 7

This version includes-

  • JVM support for dynamic languages that work currently done on the Multi-Language Virtual Machine
  • Compressed 64-bit pointers
  • New file I/O library that supports for multiple file systems, file metadata and symbolic links.
  • Timsort allows sorting collections and arrays of objects
  • Provides Library-level support for elliptic curve cryptography algorithms
  • An XRender pipeline for Java 2D to handle the modern GPUs
  • Enhanced library-level support for new network protocols along with SCTP and SDP
  • Provide Upstream updates to XML and Unicode

8. Java SE 8

This version includes-

  • Language-level support for lambda expressions
  • Provide annotation on java types
  • Provide the date and time API
  • Statically linked JNI library

9. Java SE 9

This version includes-

  • Modularisation of the JDK under Project Jigsaw
  • It includes a Java implementation of Reactive Streams
  • Variable handles to define a standard means to invoke the equivalents of various java.util.concurrent.atomic and sun.misc.Unsafe operations
  • JavaDB was removed from JDK
  • Compact Strings

10. Java SE 10

This version includes-

  • Provide local-variable type inference
  • Provide application class-data sharing
  • Time-based release versioning
  • Garbage collector interface
  • Thread-local handshakes
  • Root certificates
  • Remove the native-header generation tool

11. Java SE 11

This version includes-

  • Dynamic class-file constants
  • Provide no-op garbage collector
  • Provide local variable syntax for lambda parameters
  • Provide transport layer security
  • Provide flight recorder

12. Java SE 12

This version includes-

  • Provide microbenchmark suite
  • Provide switch expression
  • Provide JVM constants API.
  • Provide abortable mixed collection for G1.

People are also reading: 

Leave a Reply

Your email address will not be published. Required fields are marked *