このエントリは以下の複数エントリをベースにしています。
This entry is based on the following entries.
The countdown to Java 12 has begun: Here’s the list of all the planned new features
https://jaxenter.com/countdown-java-12-begun-overview-155751.html
First look at JDK 13: The list of JEP candidates is getting longer
https://jaxenter.com/keeping-track-of-jdk-13-155201.html
2019年3月19日 (PT) にJDK 12のリリースが予定されています。Mark ReinholdのTweetの通り、今日 (2019/2/20) 現在ではRelease Candidateのフェーズに入っています。
以下のJEPがJDK 12に新たに機能追加される予定です。
189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
http://openjdk.java.net/jeps/189
Shenandoahと命名された新しいガベージコレクション (Garbage Collection) アルゴリズムが追加されます。このGCはポーズ時間を減らします。これは実行中のJavaスレッドと同時に避難作業を行うことで、GCによるポーズ時間を短縮するというものです。Shenandoahのポーズ時間はヒープサイズとは無関係で、ヒープが200 MBでも200 GBでも、同じポーズ時間になることを目指したGCです。
230: Microbenchmark Suite
http://openjdk.java.net/jeps/230
JDKソースコードにマイクロベンチマークの基本的なスィートが追加されます。開発者にとって既存のマイクロベンチマークの実行や新たなマイクロベンチマークの作成が簡単になるでしょう。
325: Switch Expressions (Preview)
http://openjdk.java.net/jeps/325
switch文 (statement) を拡張して文や式として利用できるようにし、両方でこれまでの伝統的なスコープもしくは簡素化されたスコープを利用できるとともに、制御フロー動作を利用可能にすることを目指します。これらの変更により毎日のコーディングが簡素化されるでしょう。それと同時に、これはパターンマッチング (JEP 305) を switch で利用するための準備とも言えます。なお、この機能はプレビュー扱いの言語機能です。
JEP 305: Pattern Matching for instanceof (Preview)
https://openjdk.java.net/jeps/305
334: JVM Constants API
http://openjdk.java.net/jeps/334
主要なクラスファイルとランタイムアーティファクト、特に定数プールからロード可能な定数の名称的な記述をモデル化するためのAPIを導入します。
340: One AArch64 Port, Not Two
http://openjdk.java.net/jeps/340
32ビットARMポートと64ビットaarch64ポートを保持しながら、arm64ポートに関連するすべてのソースを削除します。
341: Default CDS Archives
http://openjdk.java.net/jeps/341
JDKビルドプロセスの機能を強化し、64bitプラットフォームでデフォルトのクラスリストを使いクラスデータ共有 (class data-sharing / CDS) アーカイブを生成するようにします。
344: Abortable Mixed Collections for G1
http://openjdk.java.net/jeps/344
休止時間の目標時間を上回る可能性がある場合には、 G1GC にて Mixed GC を中止できるようにします。
346: Promptly Return Unused Committed Memory from G1
http://openjdk.java.net/jeps/346
G1GC の機能を拡張し、アイドル時に自動的に Java ヒープメモリをOSに返すようにします。
なお、一度 Candidate になっていた Raw String Literals (https://openjdk.java.net/jeps/326) は取り下げられていますので、ご注意を。昨年末メーリングリスト上で Brian Goetz が取り下げた経緯と、再度議論を始めるというメッセージを流していましたね。
JEP proposed to drop from JDK 12: 326: Raw String Literals (Preview)
http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html
JDK 12が出ると、予定では6か月後にJDK 13がリリースされる予定になっております。今日 (2019/2/20) 現在でCandidate(候補)として挙がっているJEPは以下の通りです。
349: JFR Event Streaming
https://openjdk.java.net/jeps/349
インプロセスアプリケーションとアウトプロセスアプリケーションの両方に対して、JFR (Java Flight Recorder) のディスク上のデータを継続的に利用するためのAPIを提供することを目指しています。
348: Java Compiler Intrinsics for JDK APIs
https://openjdk.java.net/jeps/348
JavaコンパイラーがInvokeDynamicなどの代替変換方法を使用できるようにして、コンパイラー組み込み候補として指定されている特定のJDKメソッドのパフォーマンスを向上させることを目指します。具体的には、String::format
およびObjects::hash
の呼び出しを組み込みます。