Java Versions and Programming Language Features
Every six months a new version of Java is released which introduces new features and improvements that make the lives of Java developers easier.
This article will
- List only the most important features that every java developer must know.
- Focus only on new Java programming language features.
- Ignore features that are deprecated or removed during a particular release.
- Ignore most of the enhancements of existing features, performance improvements, and bug fixes.
- Only include features added Java 5 onwards.
Note: Most features introduced in an older version of Java are usually carried forwarded to newer versions of Java. Some of these features may undergo few enhancements over the years.
Java SE 17 (LTS)
GA Release: September 2021
Current Status: Long-Term Support – September 2030
Latest Version: NIL
- TBD
Java SE 16
GA Release: March 2021
Current Status: End of Life – September 2021
Latest Version: NIL
- Warnings for Value-Based Classes
- Packaging Tool
- Pattern Matching for instanceof
- Records
- Strongly Encapsulate JDK Internals by Default
Java SE 15
GA Release: September 15, 2020
Current Status: End of Life – March 2021
Latest Version: 15.0.1
- isEmpty Default Method to CharSequence
- Hidden Classes
- Specialized Implementations of TreeMap Methods
- Text Blocks
- Shenandoah: A Low-Pause-Time Garbage Collector
- ZGC: A Scalable Low-Latency Garbage Collector
For more features refer Java 15 Release Notes on New Features
Java SE 14
GA Release: March 17, 2020
Current Status: End of Life – September 2020
Latest Version: 14.0.2
- Helpful NullPointerExceptions messages
- Improved Switch Expressions
For more features refer Java 14 Release Notes on New Features
Java SE 13
GA Release: September 17, 2019
Current Status: End of Life – March 2020
Latest Version: 13.0.2
- String API Changes
For more features refer Java 13 Release Notes on New Features
Java SE 12
GA Release: March 19, 2019
Current Status: End of Life – September 2019
Latest Version: 12.0.2
- String API Changes
- Collectors.teeing() in Stream API
- Compact Number Formatting
For more features refer Java 12 Release Notes on New Features
Java SE 11 (LTS)
GA Release: September 25, 2018
Current Status: Long-Term Support – September 2026
Latest Version: 11.0.9
- HTTP Client API
- Launch Single-File Source-Code Programs
- String API Changes
- Files.readString() and Files.writeString()
For more features refer Java 11 Release Notes on New Features
Java SE 10
GA Release: March 20, 2018
Current Status: End of Life – September 2018
Latest Version: 10.0.2
For more features refer Java 10 Release Notes on New Features
Java SE 9
GA Release: September 21, 2017
Current Status: End of Life – March 2018
Latest Version: 9.0.4
- Java Platform Module System
- takeWhile / dropWhile methods in Streams
- Concise try-with-resources Statements
- Private interface methods
- jshell CLI
For more features refer Java 9 Release Notes on New Features
Java SE 8 (LTS)
GA Release: March 18, 2014
Current Status: Long-Term Support – December 2030
Latest Version: 8u271
- forEach method in iterable interface
- Lambda Expressions
- Functional Interfaces
- Default and Static methods in interfaces
- Stream API
- Date-Time Packages
For more features refer Java 8 Release Notes on New Features
Java SE 7
GA Release: July 7, 2011
Current Status: Extended Support Until – July 2022
Latest Version: 7u80
- Strings in switch Statements
- The try-with-resources Statement
- Underscores in Numeric Literals
- Binary Literals
- Diamond Operator for Generic Instance Creation
- Catching Multiple Exception Types
- Non-blocking I/O
For more features refer Java 7 Release Notes on New Features
Java SE 6
GA Release: December 11, 2006
Current Status: End of Life – December 2018
Latest Version: 6u45
- Collections Framework Enhancements
- Enhancements in Java I/O
- java.lang.instrument Package Enhancements
- java.util.ServiceLoader
- Scripting for the Java Platform
For more features refer Java 6 Release Notes on New Features
Java SE 5.0
GA Release: September 30, 2004
Current Status: End of Life – April 2015
Latest Version: 1.5.0_22
- Java Generics
- Annotations and Annotations Processing Tool
- Autoboxing/Unboxing
- Typesafe Enums
- Varargs
- Static Import
- Enhanced for loop
- java.util.concurrent Package
- java.util.Scanner Class
For more features refer Java 5.0 Release Notes on New Features