2020/04/10

Java 14 リリース

Java 14 が出ましたね。
https://jdk.java.net/14/
https://openjdk.java.net/projects/jdk/14/

早速 Pleiades Eclipse も Java 14 入りのバージョンが用意されました。
Pleiades Eclipse 2020-03 リリース 〜 Java 14 新機能を試そう!

余談ですが、おじさんは jdk14 って書かれると、jdk 1.4 を思い出しちゃいます。

さて、新機能は以下の通りです。次の記事から、順番に紹介していきたいと思います。
  • JEP 305: Pattern Matching for instanceof (Preview)
    • instanceof-and-cast idiom からパターンマッチングへ
  • JEP 343: Packaging Tool (Incubator)
    • Java Runtime 入りのパッケージが作れる
  • JEP 345: NUMA-Aware Memory Allocation for G1
    • Non-Uniform Memory Access というメモリアクセス速度が不均一なシステム上での G1 GC の改善
  • JEP 349: JFR Event Streaming
    • JDK Flight Recorder のイベントをストリーム的に扱えるように
  • JEP 352: Non-Volatile Mapped Byte Buffers
    • 不揮発メモリに対して memory mapped I/O を使用するときの効率改善
  • JEP 358: Helpful NullPointerExceptions
    • 何が null なのか教えてくれるようになった!
  • JEP 359: Records (Preview)
    • データを保持するだけの特殊なクラス (レコード) を簡便な記法で定義できる
  • JEP 361: Switch Expressions (Standard)
    • switch 式が使えるようになった
  • JEP 362: Deprecate the Solaris and SPARC Ports
    • Solaris / SPARC, Solaris / x64, Linux / SPARC 終了のお知らせ
  • JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
    • G1 GC が十分に CMS GC をリプレースできるようになったので、CMS GC は役割を終えた
  • JEP 364: ZGC on macOS
  • JEP 365: ZGC on Windows
    • Linux のみだった ZGC が MacOSX, Windows に展開された
  • JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination
    • あまり使い途のない組み合わせなのにメンテナンスコストが高いので廃止とのこと
  • JEP 367: Remove the Pack200 Tools and API
    • Java 9 以降使われなくなった Pack200 を除去
  • JEP 368: Text Blocks (Second Preview)
    • 複数行の文字列リテラルが導入された
  • JEP 370: Foreign-Memory Access API (Incubator)
    • ヒープ外メモリへのアクセス