【Modern Java】リリースバージョン別 主要新機能 まとめ

長期サポート(LTS) の Java8 以降の主な拡張機能です。


Java 9 (2017年9月21日)


Java 10 (2018年3月20日)


Java 11 (2018年9月25日)


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日)


Java 15 (2020年9月15日)


Java 16 (2021年3月16日)


Java 17(2021年9月14日)

Java 11 に続く長期サポート対象バージョン(LTS)

  • Sealed クラスの導入
    • JEP 409: Sealed Classes
    • 継承できるクラスを制限する Sealed Class
  • switch パターンマッチング
    • JEP 406: Pattern Matching for switch (Preview)
  • ベクトル演算 API (Second Incubator)
    • JEP 414: Vector API (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日)


Java 19(2022年09月20日)

  • RISC-V 命令セットアーキテクチャ(ISA)ポート
    • JEP 422: Linux/RISC-V Port
  • switch パターンマッチング (Third Preview)
    • JEP 427: Pattern Matching for switch
  • レコードクラスのパターンマッチ (Preview)
    • JEP 405: Record Patterns
    • レコードクラスで instanceof パターンマッチが可能
    • JEP 427 と合わせて switch でのパターンマッチが可能となる
  • 外部関数と外部メモリとの総合運用API(Preview)
    • JEP 424: Foreign Function & Memory API
  • 仮想スレッド(Preview)
  • ベクトル演算 API (Fourth Incubator)
    • JEP 426: Vector API
  • 構造化された並行性 (Incubator)
    • JEP 428: Structured Concurrency
    • StructuredTaskScope クラスにより並列処理を構造化