History of Java programming language
Java is an object-oriented programming language whose development began in 1991 at Sun Microsystems (the Green project, led by James Gosling). Its first public release — JDK 1.0 — came out on January 23, 1996. Over almost 30 years, the language has evolved from Oak to Java 26 (2026). Below is the history of its key versions and features.
Java version table
| Year | Version | Line | Key features |
|---|---|---|---|
| 1996 | JDK 1.0 | Java (formerly Oak) | First release: JVM, core APIs, AWT, applets |
| 1997 | JDK 1.1 | Java | JavaBeans, JDBC, inner classes, reflection |
| 1998 | J2SE 1.2 | Java 2 | Collections Framework, Swing, JIT compiler |
| 2000 | J2SE 1.3 | Java 2 | HotSpot JVM, JNDI |
| 2002 | J2SE 1.4 | Java 2 | assert, regular expressions, NIO, logging |
| 2004 | J2SE 5.0 | Java 5 | Generics, annotations, enums, varargs, for-each, autoboxing |
| 2006 | Java SE 6 | Java 6 | Collections improvements (NavigableSet, NavigableMap), JAX-WS |
| 2011 | Java SE 7 | Java 7 | switch on String, try-with-resources, multi-catch, NIO.2 |
| 2014 | Java SE 8 LTS | Java 8 | Lambda expressions, Stream API, java.time, default methods |
| 2017 | Java SE 9 | Java 9 | Module system (Project Jigsaw), JShell, private interface methods |
| 2018 | Java SE 10 | Java 10 | The var keyword (local-variable type inference) |
| 2018 | Java SE 11 LTS | Java 11 | New HTTP Client, var in lambdas, removal of Java EE/CORBA |
| 2019 | Java SE 12–13 | Java 12–13 | Switch expressions (preview), text blocks (preview) |
| 2020 | Java SE 14–15 | Java 14–15 | Records (preview), pattern matching, sealed classes (preview) |
| 2021 | Java SE 16 | Java 16 | Records and pattern matching for instanceof (stable) |
| 2021 | Java SE 17 LTS | Java 17 | Sealed classes (stable), pattern matching for switch (preview) |
| 2022 | Java SE 18–19 | Java 18–19 | UTF-8 by default, virtual threads (preview) |
| 2023 | Java SE 20 | Java 20 | Structured concurrency and record patterns evolve |
| 2023 | Java SE 21 LTS | Java 21 | Virtual threads, pattern matching for switch and records (stable) |
| 2024 | Java SE 22–23 | Java 22–23 | Foreign Function & Memory API, preview features evolve |
| 2025 | Java SE 24 | Java 24 | Further JVM and language improvements |
| 2025 | Java SE 25 LTS | Java 25 | Structured concurrency (stable), value objects (preview) |
| 2026 | Java SE 26 | Java 26 | Project Valhalla, Project Panama evolve |
JDK 1.0 — the birth of Java (1996)
The story began in 1991, when a Sun Microsystems team led by James Gosling worked on the Green project — a language for consumer electronics (set-top boxes and other devices). The language was originally called Oak, but was later renamed Java. The first public release, JDK 1.0, came out in January 1996. The language was influenced by C++ but emphasized simplicity and security.
There are several versions of how the name originated. The most common one says the language was named after Java coffee, which in turn was named after the Indonesian island of Java — which is why the Java logo features a cup of coffee.
JDK 1.1 (1997)
In 1997, JDK 1.1 was released, already officially carrying the name Java. Its new features included the JavaBeans component model, JDBC for database access, inner classes, and reflection.
J2SE 1.2 — the “Java 2” era (1998)
With version 1.2, the package name changed from JDK to J2SE (Java 2 Standard Edition), and the line became known as Java 2. This release introduced the Collections Framework, the Swing library, and a JIT compiler. The “Java 2” name became so entrenched that many books kept it in their titles even while describing later versions (Java 5, Java 6).
J2SE 5.0 — a major language update (2004)
With the fifth version, the marketing name became Java 5 and the package name J2SE 5.0. From then on, the language version number follows the package number. Java 5 brought many changes:
- enums;
- annotations;
- generics;
- varargs;
- the for-each loop;
- autoboxing and unboxing.
Java SE 6 (2006) and Java SE 7 (2011)
In Java 6, the main changes involved collections — the NavigableSet and NavigableMap interfaces were added; the package name became Java SE 6.
A full five years passed between Java 6 and Java 7. This was largely because in 2009 Sun Microsystems, the owner of Java, was acquired by Oracle (the deal was announced in 2009 and completed in January 2010). Java 7 introduced: using String in switch, multi-catch, try-with-resources, underscores in numeric literals, and binary literals.
Java SE 8 — functional style (2014)
Java 8 became one of the most important releases and the first LTS version. It introduced lambda expressions and related method references, functional interfaces, static and default interface methods, a new date/time API (java.time), and the Stream API.
Java SE 9–10 and the move to a six-month cadence (2017–2018)
Java 9 brought the module system (Project Jigsaw), private interface methods, and the JShell tool. Java 10 introduced the var keyword. From that point, Oracle switched to a six-month release cadence: a new version ships every six months — in March and September.
Modern Java and LTS versions
After the move to a fast release cadence, the concept of LTS (Long-Term Support) versions emerged — releases with extended support that most companies rely on. These are Java 8, 11, 17, 21, and 25; since Java 17, a new LTS ships every two years. Interim versions are supported for only six months, so production systems typically use an LTS release.
Key features of modern Java include records and sealed classes (Java 16–17), pattern matching and switch expressions, and virtual threads (Project Loom), which became stable in Java 21. As of 2026, the latest version is Java 26, and the latest LTS is Java 25.
Frequently asked questions
Who created the Java language?
Java was developed by a Sun Microsystems team led by James Gosling as part of the Green project, started in 1991.
When was the first version of Java released?
The first public release, JDK 1.0, came out on January 23, 1996. Development had begun back in 1991 under the name Oak.
Why is the language called Java?
According to the most common account, it was named after Java coffee, itself named after the Indonesian island of Java — which is why the logo shows a cup of coffee.
What are Java LTS versions?
LTS (Long-Term Support) versions are Java 8, 11, 17, 21, and 25. Most companies rely on them because interim versions are supported for only six months.
What is the latest version of Java?
As of 2026, the latest version is Java 26 (released March 2026), and the latest LTS version is Java 25 (September 2025).
When did Oracle acquire Java?
Oracle acquired Sun Microsystems, the owner of Java: the deal was announced in 2009 and completed in January 2010.
Video Explanation
Prefer video format? Watch this lesson with examples and explanations.
Comments