長期サポート(LTS) の Java8 以降の主な拡張機能です。
- Java 9 (2017年9月21日)
- Java 10 (2018年3月20日)
- Java 11 (2018年9月25日)
- Java 12 (2019年3月19日)
- Java 13 (2019年9月17日)
- Java 14 (2020年3月17日)
- Java 15 (2020年9月15日)
- Java 16 (2021年3月16日)
- Java 17(2021年9月14日)
- Java 18(2022年3月22日)
- Java 19(2022年09月20日)
- Java 20(2023年03月21日)
- Java 21(2023年09月19日)
Java 9 (2017年9月21日)
- Project Jigsaw によるモジュールシステム導入
- JSR 376: JavaTM Platform Module System 他
- 【Modern Java】Java Platform Module System (JPMS) - A Memorandum
- Gradle における Java Platform Module System (JPMS) の運用 - A Memorandum
- 不変コレクションの生成APIの追加
- JEP 269: Convenience Factory Methods for Collections
- 【Modern Java】JEP 269 Convenience Factory Methods for Collections - A Memorandum
- JShellコマンドラインツール
- JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)
- Project Coin によるいくつかの言語機能追加
- JEP 213: Milling Project Coin
- プラットフォーム・ロギング・API
- JEP 264: Platform Logging API and Service
- これからのロガー JEP 264: Platform Logging API and Service - A Memorandum
Java 10 (2018年3月20日)
- ローカル変数の型推論
var
- JEP 286: Local-Variable Type Inference
- 【Modern Java】Local-Variable Type Inference - A Memorandum
Java 11 (2018年9月25日)
- ラムダ式の引数の型推論
- JEP 323: Local-Variable Syntax for Lambda Parameters
- 新しいHTTP Client(正式版)
- JEP 321: HTTP Client (Standard)
- 【Modern Java】java.net.http.HttpClient (JEP 321) - A Memorandum
- シングルJavaファイルからの即時Java実行
- JEP 330: Launch Single-File Source-Code Programs
- 【Modern Java】JEP 330 Launch Single-File Source-Code Programs - A Memorandum
- Javaプログラム実行トレース用の各種データ収集フレームワーク(Flight recorder)
- JEP 328: Flight Recorder
Java 12 (2019年3月19日)
- switch式(Preview)
- JEP 325: Switch Expressions (Preview)
Java 13 (2019年9月17日)
- switch式(Second Preview)
- JEP 354: Switch Expressions (Second Preview)
- 複数行の文字列リテラル(Preview)
- JEP 355: Text Blocks (Preview)
- ソケットAPIの改良実装
- JEP 353: Reimplement the Legacy Socket API
Java 14 (2020年3月17日)
- switch式
- インストーラ作成パッケージツール (Incubator)
- Recordクラスの導入(Preview)
- instanceof パターンマッチング(Preview)
- 複数行の文字列リテラル (Second Preview)
Java 15 (2020年9月15日)
- Hiddenクラスの導入
- 複数行の文字列リテラル
- instanceof パターンマッチング
- Recordクラスの導入 (Second Preview)
- Sealedクラスの導入 (Preview)
Java 16 (2021年3月16日)
- Recordクラスの導入
- instanceof パターンマッチング
- インストーラ作成パッケージツール
- Sealedクラスの導入 (Second Preview)
- ベクトル演算 API (Incubator)
Java 17(2021年9月14日)
Java 11 に続く長期サポート対象バージョン(LTS)
- Sealed クラスの導入
- JEP 409: Sealed Classes
- 継承できるクラスを制限する Sealed Class
- switch パターンマッチング
- ベクトル演算 API (Second Incubator)
- その他
- JEP 306: Restore Always-Strict Floating-Point Semantics - 厳密な浮動小数演算(strictfp)をデフォルトに(SSE2があるため)
- JEP 356: Enhanced Pseudo-Random Number Generators -
java.util.random
パッケージ - JEP 403: Strongly Encapsulate JDK Internals - 内部APIの隠蔽が強制される
- JEP 412: Foreign Function & Memory API (Incubator) - JNIの代替として外部関数と外部メモリとの総合運用APIを導入
- JEP 415: Context-Specific Deserialization Filters - コンテキストに応じたデシリアライズフィルタを構成(ObjectInputFilter.Config にフィルタファクトリを登録)
- JEP 391: macOS/AArch64 Port - Apple M1チップ(AArch64)向けサポート
- JEP 382: New macOS Rendering Pipeline - Apple MetalによるグラフィックAPI対応
Java 18(2022年3月22日)
- UTF-8 のデフォルト化
- JEP 400:UTF-8 by Default
Dfile.encoding=COMPAT
とすると従来互換
- シンプルなWebサーバー
- JavaDoc の コードスニペット サポート
- JEP 413: Code Snippets in Java API Documentation
- {@snippet ...} として JavaDoc 中にコードを記載
- 【Modern Java】Java18で追加された Code Snippets in Java API Documentation (JEP 413) - A Memorandum
- switch パターンマッチング (Second Preview)
- ベクトル演算 API (Third Incubator)
- 外部関数と外部メモリとの総合運用API(Second Incubator)
Java 19(2022年09月20日)
- RISC-V 命令セットアーキテクチャ(ISA)ポート
- switch パターンマッチング (Third Preview)
- レコードクラスのパターンマッチ (Preview)
- JEP 405: Record Patterns
- レコードクラスで
instanceof
パターンマッチが可能 - JEP 427 と合わせて switch でのパターンマッチが可能となる
- 外部関数と外部メモリとの総合運用API(Preview)
- 仮想スレッド(Preview)
- ベクトル演算 API (Fourth Incubator)
- 構造化された並行性 (Incubator)
- JEP 428: Structured Concurrency
- StructuredTaskScope クラスにより並列処理を構造化
Java 20(2023年03月21日)
- スコープド・バリュー(Incubator)
- JEP 429: Scoped Values
- 仮想スレッドで有用なスレッドローカル変数の代替
- レコードクラスのパターンマッチ(Second Preview)
- JEP 432: Record Patterns
- レコードクラスで instanceof パターンマッチが可能
- JEP 427 と合わせて switch でのパターンマッチが可能となる
- switch パターンマッチング(Fourth Preview)
- 外部関数と外部メモリとの総合運用API(Second Preview)
- 仮想スレッド(Second Preview)
- 構造化された並行性(Second Incubator)
- JEP 437: Structured Concurrency
- StructuredTaskScope クラスにより並列処理を構造化
Java 21(2023年09月19日)
- バーチャルスレッド
- 順序付き要素シーケンスの型追加
- レコードクラスのパターンマッチ
- switch パターンマッチ
- 無名パターン・無名変数
_
- 文字列テンプレート(Preview)
- ベクトル演算 API (Sixth Incubator)
- 外部関数と外部メモリとの総合運用API(Third Preview)
- 無名クラスとインスタンス・メインメソッド
- Shenandoah GC のジェネレーショナル・モード
- 世代別ZGC
- 32bit Windows ポートの削除