米Oracleは、「Java 16」を3月16日(現地時間)にリリースした。「Java 17」の提供は9月を予定しているが、早期アクセスビルドはすでに公開されている。
「Java 16」では、instanceof演算子によるパターンマッチングや、イミュータブルなデータの透過的なホルダーであるクラスをコンパクトな構文で宣言できるレコードが追加された。
また、ZGCスレッドスタック処理をセーフポイントから並行フェーズに移動することで、大きなヒープであってもGCセーフポイント内でミリ秒未満の一時停止を許可し、ZGCガベージコレクタにおけるレイテンシの原因を取り除くZGC並行スレッド処理に対応するとともに、未使用のHotSpot VMクラスメタデータメモリをより迅速にOSへ返すことで、メタスペースのフットプリントを削減するElasticメタスペースにおいて、メタスペースメモリをより小さなチャンクに割り当てることによって、クラスローダのオーバーヘッドと断片化を削減している。
さらに、ソケットチャネルおよびサーバソケットチャネルAPIへのUNIXドメイン(AF_UNIX)ソケットのサポートと、自己完結型のJavaアプリケーションをパッケージ化するパッケージングツールが追加されたほか、JDK 9以降に非推奨となった、値ベースのクラスに対する警告、JDKのすべての内部要素の強力なカプセル化、APIの初期反復を提供してサポートされているCPUアーキテクチャに最適なベクトルハードウェア命令にコンパイルするベクトル計算を出力するVector API、および静的に型指定されたネイティブコードへの純粋なJavaアクセスを提供するForeign Linker API(インキュベータ)などが追加された。
そのほかOpenJDKでは、C++14への対応、ソースコードリポジトリのMercurialからGitへの移行、Alpine LinuxやWindows/AArch64へのポーティングなどが行われている。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です