Skip to main content

Java SE Features from JDK 11 to JDK 23: A Complete Guide

JDK 11 Features​

Released as a Long-Term Support (LTS) version, Java 11 comes with major improvements aimed at performance and ease of use. Key Java 11 features include:

  • HTTP Client API (Standard): A new, non-blocking HTTP client for making HTTP requests, now part of Java SE 11.
  • Local-Variable Syntax for Lambda Parameters: Use var in lambda parameters for a cleaner codebase in Java 11.
  • Flight Recorder: Collects diagnostic and profiling data, making it easier to monitor Java applications in production.
  • New String Methods: New Java 11 string methods like isBlank(), lines(), strip(), and repeat() for enhanced string handling.
  • Removal of JavaFX, WebStart, and CORBA: As Java SE 11 moves forward, legacy technologies such as JavaFX, WebStart, and CORBA are gradually removed.

JDK 12 Features​

Java 12 builds upon previous versions with new tools to improve performance and developer experience. Highlights include:

  • Switch Expressions (Preview): Simplifies complex switch statements and improves readability in Java 12.
  • Compact Number Formatting: New Java 12 API for formatting numbers in a compact style.
  • String Methods: New String methods like String.indent() and Collectors.teeing() for enhanced functionality in Java SE 12.

JDK 13 Features​

With JDK 13, developers saw improvements in Java SE with features that further enhanced code readability and performance. Notable changes include:

  • Text Blocks (Preview): Easier multi-line string handling introduced in Java 13.
  • Enhanced Switch Expressions: Further improvements in this feature for better readability in Java SE 13.

JDK 14 Features​

Java 14 offers more advanced features, including improvements for clean and efficient code. Key additions include:

  • Records (Preview): A simplified way to create data-carrying classes in Java 14.
  • Pattern Matching for instanceof (Preview): Allows more concise and readable type-checking in Java 14.
  • Helpful NullPointerExceptions: Easier debugging with better error messages in Java SE 14.

JDK 15 Features​

Java 15 brings a significant update with several new features designed for performance and security:

  • Text Blocks (Standard): A fully stabilized feature for multi-line strings in Java 15.
  • Sealed Classes (Preview): A new way to restrict class inheritance in Java 15.
  • Hidden Classes: For dynamically generated classes used in frameworks and libraries in Java SE 15.

JDK 16 Features​

In Java 16, the focus shifts to usability and new language features:

  • Records (Standard): Officially adds records, which provide a simplified syntax for data classes in Java 16.
  • Pattern Matching for instanceof (Standard): Improves readability with automatic casting in Java SE 16.
  • Unix-Domain Socket Channels: Adds support for Unix domain sockets in Java 16.

JDK 17 Features​

As another LTS version, Java 17 offers stability with some exciting new features:

  • Sealed Classes (Standard): Official introduction of sealed classes in Java 17.
  • Pattern Matching for switch (Preview): Simplifies switch statements in Java SE 17.
  • Foreign Function & Memory API (Incubator): Simplifies native code interaction and memory management in Java SE 17.

JDK 18 Features​

Java 18 focuses on usability and compatibility with earlier versions:

  • Simple Web Server: A lightweight web server for prototyping in Java 18.
  • UTF-8 by Default: Changes to ensure UTF-8 is the default character encoding in Java SE 18.
  • Code Snippets in JavaDoc: Enhances Java documentation with executable code examples in Java 18.

JDK 19 Features​

Java 19 introduces new features with a focus on multi-threading and better code structure:

  • Virtual Threads (Preview): A new way to manage concurrency in Java 19 with lightweight threads.
  • Structured Concurrency (Incubator): Simplifies working with multi-threaded code in Java SE 19.
  • Record Patterns (Preview): Enhances pattern matching for records in Java 19.

JDK 20 Features​

Java 20 brings stability and improvements to earlier features:

  • Virtual Threads (2nd Preview): Continues to improve virtual threads for better performance in Java 20.
  • Structured Concurrency (2nd Incubator): Provides a consistent model for working with threads in Java SE 20.
  • Scoped Values (Incubator): Improves data sharing across threads in Java 20.

JDK 21 Features​

Java 21 includes key updates that enhance both performance and scalability:

  • Virtual Threads (Stable): Virtual threads become a stable feature for simplifying concurrent programming in Java SE 21.
  • Pattern Matching for switch (Stable): Officially moves pattern matching to full functionality in Java SE 21.
  • Sequenced Collections: A new collection API for guaranteed order of insertion in Java SE 21.

JDK 22 Features​

Java 22 introduces the following features to further boost productivity and maintainability:

  • Stream Gatherers: Makes it easier to collect data from streams in Java 22.
  • Unnamed Variables and Patterns: Simplifies handling variables and patterns in certain contexts in Java SE 22.
  • String Templates (Preview): Makes string construction more readable in Java 22.

JDK 23 Features​

Java 23 introduces features for developer productivity, performance optimization, and modern programming paradigms:

  • Implicitly Declared Classes (Preview): Simplified class declarations for small programs in Java 23.
  • Enhanced Generics: Improved type inference for generics in Java SE 23.
  • Vector API (Stable): High-performance vector computations in Java 23.