Features of Java 8 to 18

We can consider this a quick guide to understanding the high-level features of java versions from 8 to 18.

Java 8 (Long Term Support):

  • Lambda expression
  • Stream API
  • Functional interface
  • Default and static methods
  • Optional class
  • Nashorn — JavaScript runtime engine
  • Unsigned Integer Arithmetic
  • Repeating annotations
  • New Date and Time API

Java 9:

  • 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 10:

  • Local Variable Type Inference
  • Time-Based Release Versioning
  • Garbage-Collector Interface
  • Parallel Full GC for G1
  • Heap Allocation on Alternative Memory Devices
  • Consolidate the JDK Forest into a Single Repository

Java 11 (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:

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

Java 13:

  • 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:

  • 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:

  • 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:

  • 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 (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:

  • 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

References: Oracle official website, java doc, API specification doc

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store