Skip to main content

Java Versions & Features

Java 9 Features:


  • Java platform module system
  • Interface Private Methods
  • HTTP 2 Client
  • JShell
  • Platform and JVM Logging
  • Process API Updates
  • Collection API Updates
  • Improvements in Stream API
  • Multi-release JAR Files
  • @Deprecated Tag Changes
  • Stack Walking

Java 11 Features (Long Term Support):


  • HTTP Client API
  • Launch Single-File Programs Without Compilation
  • String API Changes
  • Collection.toArray(IntFunction)
  • Files.readString() and Files.writeString()
  • Optional.isEmpty()

Java 12 Features:


  • Collectors.teeing() in Stream API
  • String API Changes
  • Files.mismatch(Path, Path)
  • Compact Number Formatting
  • Support for Unicode 11
  • Switch Expressions (Preview)

Java 13 Features:


– Text Blocks (Preview) – Switch Expressions Enhancements (Preview) – Reimplement the Legacy Socket API – Dynamic CDS Archive – ZGC: Uncommit Unused Memory – FileSystems.newFileSystem() Method – DOM and SAX Factories with Namespace Support

Java 14 Features:


– Pattern Matching for instanceof – Text Blocks – Helpful NullPointerExceptions – Records – Switch Expressions – Packaging Tool – NUMA-Aware Memory Allocation for G1 – JFR Event Streaming – Non-Volatile Mapped Byte Buffers – Remove the Pack200 Tools and API

Java 15 Features:


  • Sealed Classes and Interfaces
  • EdDSA Algorithm
  • Hidden Classes
  • Pattern Matching for instanceof
  • Removed Nashorn JavaScript Engine
  • Reimplement the Legacy DatagramSocket API
  • Records (Second Preview)
  • Text Blocks become a standard feature

Java 16 Features:


  • Vector API
  • Enable C++14 Language Features
  • Migrate from Mercurial to Git
  • Migrate to GitHub
  • Concurrent Thread-Stack Processing
  • Unix-Domain Socket Channels
  • Alpine Linux Port
  • Elastic Metaspace
  • Windows/AArch64 Port

Java 17 Features (Long Term Support):


  • Restore Always-Strict Floating-Point Semantics
  • Enhanced Pseudo-Random Number Generators
  • New macOS Rendering Pipeline
  • macOS/AArch64 Port
  • Deprecate the Applet API for Removal
  • Strongly Encapsulate JDK Internals
  • Pattern Matching for switch

Java 18 Features:


  • UTF-8 by Default
  • Simple Web Server
  • Code Snippets in Java API Doc
  • Reimplement Core Reflection with Method Handles
  • Vector API
  • Internet-Address Resolution SPI
  • Foreign Function & Memory API
  • Pattern Matching for switch

Java 19 Features:


  • Record Patterns (Preview)
  • Linux/RISC-V Port
  • Foreign Function & Memory API (preview)
  • Virtual Threads (Preview)
  • Vector API (Fourth Incubator)
  • Structured Concurrency (Incubator)
  • Pattern Matching for switch (Third Preview)