JDK 14リリースにおける重要な変更
次に示すのは、Java SE 14およびJDK 14での変更点の一部です:
- switchは文または式として使用できるように拡張されたため、両方のフォームは、switch式から値を生成するための追加の新しい文とともに従来の
case ... :
ラベル(フォール・スルーあり)または新しいcase ... ->
ラベル(フォール・スルーなし)のいずれかを使用できます。『JEP 361: Switch Expressions (Standard)』および「Java言語の変更」を参照してください。 - G1は、不均一メモリー・アクセス(NUMA)メモリー・システムでの割当てパフォーマンスを向上させるために強化されています。『JEP 345: NUMA-Aware Memory Allocation for G1』を参照してください。
- JDKフライト・レコーダ・データが、連続したモニタリングを可能にするデータ・ストリームとして使用できるようになりました。『JEP 349: JFR Event Streaming』を参照してください。
- 新しいJDK固有のファイル・マッピング・モードが追加され、不揮発(NVM)メモリーを参照する
MappedByteBuffer
インスタンスをFileChannel
APIを使用して作成できるようになりました。『JEP 352: Non-Volatile Mapped Byte Buffers』を参照してください。 - 通貨の書式をロケール固有の会計書式で設定できます。たとえば、-$3.27ではなく($3.27)などです。『Accounting Currency Format Support』を参照してください。
- コンテナ環境など、現在のオペレーティング環境を基に値がレポートされるように、
com.sun.management.OperatingSystemMXBean
が拡張されました。オペレーティング・システムに関する情報を取得するツール用のMXBeanが、コンテナ環境で改善されています。『OperatingSystemMXBean made container aware』を参照してください。
実験的、プレビューおよびインキュベータ機能
Records
はJava言語のプレビュー機能であり、様々な不変データに対して透過的なホルダーであるクラスを宣言するためのコンパクトな構文を提供します。『JEP 359: Records (Preview)』を参照してください。instanceof
のパターン一致は、instanceof-and-cast
イディオムを簡略化するJavaの言語プレビュー機能です。『JEP 305: Pattern Matching for instanceof (Preview)』を参照してください。- テキスト・ブロックは、大部分のエスケープ・シーケンスの必要性を回避し、文字列を予測可能な方法で自動的に書式設定する複数行の文字列リテラルであり、必要に応じて開発者が書式を制御できます。テキスト・ブロックは、JDK 13でプレビュー機能として導入されました。JDK 14で、2つの新しいエスケープ・シーケンスを追加してテキスト・ブロックを再度プレビューしています。『JEP 368: Text Blocks (Second Preview)』を参照してください。
jpackage
は、自己完結型Javaアプリケーションをパッケージ化するための単純なツールです。『JEP 343: Packaging Tool (Incubator)』を参照してください。- Javaプログラムが、Javaヒープ外部の外部メモリーに効率的にアクセスできるようにするAPIが導入されました。『JEP 370: Foreign-Memory Access API (Incubator)』を参照してください。
- 以前はLinuxでのみ使用可能だったZガベージ・コレクタ(ZGC)は、WindowsとmacOSで実験的機能として導入されました。『JEP 364: ZGC on macOS』および『JEP 365: ZGC on Windows』を参照してください。