Java 18

Java 18 was released in March 2022. It is not an LTS release and will be obsoleted at the release of Java 19 in September 2022.

Status: General Availability

Resources:

Selected Changes Targeted to Java 18

  • JEP 400: UTF-8 by Default

  • JEP 408: Simple Web Server

  • JEP 413: Code Snippets in Java API Documentation

  • JEP 418: Internet-Address Resolution SPI

  • JEP 420: Pattern Matching for switch (Second Preview)

  • JEP 421: Deprecate Finalization for Removal

  • JDK-8256425: Obsolete Biased Locking

  • JDK-8275145: file.encoding system property has an incorrect value on Windows

    • “The initialization of file.encoding system property on non macOS platforms has been reverted to align with the behavior on/before JDK 11. This has been an issue especially on Windows where the system and user's locales are not the same.“

    • Implication: this issue is present in Java 17.

Other Notes

  • JEP 411 (Deprecate the Security Manager for Removal, implemented in Java 17) notes that:

    • "In Java 18, we will prevent a Java application or library from dynamically installing a Security Manager unless the end user has explicitly opted to allow it."

    • "In Java 18 and later, we will degrade other Security Manager APIs so that they remain in place but with limited or no functionality."