Java 11が出た。この新リリースは、オラクルが計画した長期間サポート (LTS) のリリースとして、初めてのものである。しかしオラクルは、Java 8も同様にLTSリリースとしており、旧来のリリースモデルと新しいアプローチのギャップの橋渡しとして役立つようにしている。
新バージョンの機能リストは、InfoQが今年の始めにリポートしたものから多少進化しただけだ。Java 11の主要な新機能は、以下のようなものだ。
- ネストベースのアクセス制御 (別名"Nestmates")。インナークラスの実装を再検討し、コンパイラがブリッジメソッドを挿入する必要がなくなった。
- 動的なクラスファイル定数 (別名"condy")。クラスファイル定数の新しい形態を作成するコストと混乱を減らし、パフォーマンスとプラットフォームに対して新しいアプローチを可能にする。
- ZGC (実験的)。(大きなヒープでさえ) 停止時間を10ミリ秒以下とする設計の新しいガベージコレクタ。 パフォーマンスのペナルティが15%を超えないことを目標にしている。
- Flight Recorder。低オーバーヘッドのデータ収集フレームワーク。JavaアプリケーションとHotSpot JVM向けのトラブルシューティング用である。以前は商用機能であったが、現在はオープンソースとなった。
- 新しい標準HTTPライブラリ。新しいモジュール java.net.http は、インキュベートのAPIを標準化し、フローベースのHTTP/1.1とHTTP/2をサポートする。
- TLS 1.3。標準化された新バージョンのトランスポート層セキュリティを実装した。
- ラムダのパラメータ向けのローカル変数構文。ラムダの構文を更新し、Java 10で導入された型推論を使用できるようにした。
新リリースでは古くなった機能をいくつか削除し、Javaのコア部分の簡素化を試みている。
- Java EEとCORBAモジュール。これらを必要とするアプリケーションは、EEやCORBAモジュールへの依存を明示的に記述しなければならない。
- Web Start。この機能は明確な代替物がないまま削除された。
- アプレット。これは、以前から大きく非推奨とされており、ついに削除された。
- JavaFX。FXライブラリはOpenJFXプロジェクトに移行され、コアからは削除された。
とくに、EEモジュールはJAXBとSOAPのサポートを含んでいる。両方のコンポーネントは、多くの企業で依然として比較的広く使われている。新バージョンにアップグレードする開発チームは、これらの変更を考慮に入れ、ビルドスクリプトを変更する必要があるかどうか、注意深く検証すべきである。
オラクルのJavaプラットフォームグループで、ソフトウェア開発のバイスプレジデントであるGeorges Saab氏は、Javaの新しいLTSモデルにこうコメントしている。
LTSモデルのリリースで、私たちの顧客はよくサポートされたJava SEのLTSリリースから次のものへ、自分たちのペースで移行できるようになります。同時に、Java開発者は、以前より早く改善点にアクセスできるようになります。
新機能の用例は、今年初めのプレゼンテーションで見ることができる。クラスファイルフォーマットの新しい変更のいくつか (condyとnestmatesを含む) については、ByteBuddy作成者のRafael Winterhalter氏とのインタビューで意見を交わしている。
Java 11はオラクルの公式ダウンロードサイトとほかのベンダからダウンロードが提供されるが、現時点ではまだウェブサイトが更新されていない。Java 11のサポートモデルは、以前のものから変更されており、InfoQは以前に新しいモデルの詳細をレポートしている。
Rate this Article
- Editor Review
- Chief Editor Action