Open In App

The Complete History of Java Programming Language

Last Updated : 10 Nov, 2025
Comments
Improve
Suggest changes
106 Likes
Like
Report

The programming language Java was developed by James Gosling and his team at Sun Microsystems in the early 1990s. Initially the goal was to build a platform independent language for embedded devices such as set-top boxes and televisions.

After exploring C++ (which proved too heavy and too closely tied to platform dependencies), the team embarked on an entirely new project codenamed the “Green Project”.

Origin and Naming of Java

The project first used the name “Green” (internally “Greentalk” with extension .gt), then was renamed “Oak” (inspired by an oak tree outside Gosling’s office). When Sun attempted to trademark “Oak,” they discovered it was already claimed by Oak Technologies, so a further rename was needed.

In an interesting session guided by a naming consultant, the team generated dozens of candidate names. The name “Java” (after the Indonesian coffee bean) emerged as the one that cleared legal review. Although Gosling’s preferred name was “Lyric” and the team initially favoured “Silk,” “Java” became the official name.

Evolution of Java

From the outset Java was built around key design goals: robustness, portability, platform independence, high performance, and multithreading. Over the years the Java Class Library expanded from only a few hundred classes to thousands and the platform grew to support enterprise, mobile, and cloud applications.

Since the first public release of JDK 1.0, Java has undergone continual revision via the Java Community Process (JCP).

History of Java Versions

VersionRelease DateMajor Changes
JDK 1.0Jan 1996First official release of Java.
JDK 1.1Feb 1997Added inner classes, JavaBeans, JDBC, RMI.
J2SE 1.2Dec 1998Collections Framework, Swing GUI toolkit, JIT compiler.
J2SE 1.3May 2000HotSpot JVM, JNDI, Proxy classes.
J2SE 1.4Feb 2002Assert keyword, regex, NIO improvements.
Java SE 5.0Sep 2004Generics, enhanced-for loop, autoboxing, annotations.
Java SE 6Dec 2006Scripting support, JDBC 4.0, pluggable annotations.
Java SE 7Jul 2011Try-with-resources, binary literals, strings in switch.
Java SE 8Mar 2014Lambda expressions, Stream API, new Date-Time API. 
Java SE 9Sep 2017Module system (Project Jigsaw). 
Java SE 10Mar 2018Local-variable type inference (var), performance enhancements. 
Java SE 11 (LTS)Sep 2018HTTP Client API, TLS 1.3, Flight Recorder. 
Java SE 12Mar 2019Switch expressions (preview), JVM GC improvements. 
Java SE 13Sep 2019Text blocks, improved switch expressions.
Java SE 14Mar 2020Records (preview), pattern-matching for instanceof (preview).
Java SE 15Sep 2020Sealed classes (preview), hidden classes, Foreign-Function & Memory API (incubator).
Java SE 16Mar 2021Finalised records and pattern matching for switch (preview). 
Java SE 17 (LTS)Sep 2021Finalised sealed classes, improved rendering on macOS.
Java SE 18Mar 2022Further language and library enhancements. 
Java SE 20Mar 2023Incubator/preview features, part of rapid-release cadence.
Java SE 21 (LTS)Sep 2023Several previewed features from earlier versions matured.
Java SE 24Mar 2025Latest public release as of writing.

Note: The release cycle shifted to a six-month cadence after Java 9. LTS versions (Long-Term Support) now include Java 8, 11, 17, 21 and upcoming ones.


Article Tags :

Explore