「Java 21」正式リリース。仮想スレッドが正式版に、入門者向けに「void main」と簡潔な記述、世代的ZGCなど新機能

今回は「「Java 21」正式リリース。仮想スレッドが正式版に、入門者向けに「void main」と簡潔な記述、世代的ZGCなど新機能」についてご紹介します。

関連ワード (対応予定、日本時間、長期等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


オラクルはJavaの最新バージョン「Java 21」正式版を今日リリースします。

Java 21は長期でセキュリティパッチやバグフィクスなどが提供されるLTS(Long Term Support:長期サポート)版です。企業向けのシステム開発などで安定したJavaのバージョンをある程度長期間使いたい場合には、このJava 21は有力な候補となるでしょう。

日本時間22時からJava 21のローンチイベントも開催予定です。「with a few surprise reveals」(いくつかサプライズ発表があるよ)というのが少し気になります。今年は昨年復活したJavaOneがないので、その代わりに何かあるのでしょうか。

We're just 1 day away from our #Java21 launch live stream! Join us tomorrow as we'll have experts share details around the latest release, with a few surprise reveals and guests along the way.

Details on how to join: https://t.co/fUyizPAT2T pic.twitter.com/XBUDSCbeL4

— Java (@java) September 18, 2023

Java 21からLTSが2年間隔に

Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるバージョンアップが行われ、そのなかの1つのバージョンが3年ごとに長期サポート(LTS:Long Term Support)版に指定されてきました。

この3年のLTSの間隔は、今回リリースされたJava 21から2年に改められます。今後は2年ごとにJavaのLTS版が登場することになります。

このLTSの方針は、オラクルが提供する商用のJavaディストリビューションであるOracle JDKにおける方針であり、他のJavaディストリビューションについてのLTS版提供の方針は、それぞれのディストリビューションベンダが決定します。

しかし、おそらく他のJavaディストリビューションベンダも同様の方針になるでしょう。

仮想スレッドが正式版になど、Java 21の主な新機能

Java 21はLTS版として、これまでプレビュー版だった多くの機能が正式版となりました。

仮想スレッドが正式版に
Java 21では、これまでプレビュー版であったVirtual Threads(JEP 444: Virtual Threads)が正式版になります。

Virtual ThreadはOSによるスレッド生成に依存せず、JavaVMの中でJavaのスレッドを作成し管理できるようにしたものです。OSのスレッド生成で発生する多数のコンテキストスイッチングやメモリ消費がなくなるため、Javaでのスレッドを用いた多数の並行処理が高速でスケーラブルなものになります。

すでに代表的なJavaのフレームワークであるSpring FrameworkがJava 21の仮想スレッドへの対応を発表しているなど、広く使われる機能になりそうです。

参考:Spring Framework 6.1が仮想スレッドに対応へ、9月登場予定のJava 21にも対応予定

より高速な世代的ZGCが正式版に
Java 15で採用されたスケーラブルかつ低レイテンシなガベージコレクタのZGCをさらに改良した世代的ZGC(JEP 439: Generational ZGC)が正式版となりました。

ジェネレーショナルZGCでは、若いオブジェクトと古いオブジェクトの世代を分けて管理することで、アプリケーションのパフォーマンスを向上させる仕組みを備えています。

これによりヒープメモリの低減、ガベージコレクション時のCPUオーバーヘッドの低減などが実現され、一時停止時間は1ミリ秒未満、数百メガバイトから数テラバイトまでのヒープサイズのサポート、最小限の手動設定などの利点が得られるとされています。

入門者向けの簡潔なコード記述が可能に
プレビューとして追加される新機能「JEP 445: Unnamed Classes and Instance Main Methods」では、これまで「public static void main(String[] args)」といった複雑な記述が必要だった部分が「void main()」のように簡潔に記述できるようになります。

これはJavaを学ぼうとする人たちに対して、プログラムを簡潔に書けるようにすることでスムーズな学習を可能にするとともに、スキルの成長に合わせて正確なコードが記述できるようにすることを目的としています。

具体的には、これまでHello, Worldの記述には下記のようなコードを書いていました。

これが下記のように簡潔に書けるようになります。

さらに、「JEP 440: Record Patterns」は、instanceofやswitchによるパターンマッチングが拡張され、Recordクラスを分解して値を抽出できるようにする機能が正式版となります。

「JEP 441: Pattern Matching for switch」は、文字通りSwitchのなかでパターンマッチングを使えるようにするもの。これも正式版になりました。

「JEP 449: Deprecate the Windows 32-bit x86 Port for Removal」で、Windows 32ビットx86版がなくなりました。

そのほか多くの新機能についてはOpenJDK 21のページをご覧ください。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
株主優待で人気のJR4社–悲観の底に沈む「JR東日本」に今、注目する理由
IT関連
2021-03-16 17:57
英Taurはeスクーターの「所有」をクールなものにできるか?
IT関連
2022-02-27 18:11
イーロン・マスク氏のNeuralink、Cラウンドで2億ドル超調達
企業・業界動向
2021-07-31 04:08
フジパングループ本社、AI検索サービスで社内問い合わせ対応を効率化
IT関連
2022-07-27 13:33
FAQ自動生成ツール「PKSHA Knowledge Maker」がクラウド化–セキュリティを強化
IT関連
2022-10-08 11:10
「ChatGPT」のGPTって何?–OpenAI言語モデルの違いをまとめて知る
IT関連
2024-02-04 00:23
イノベーションにはスピード感が重要–AWS、スタートアップ支援を強化
IT関連
2022-10-29 08:59
TC Early Stage Pitch-Offで優勝したVyrillはブランドがユーザーによる動画レビューを発見・活用をサポート
ソフトウェア
2021-07-18 13:04
ランサムウェアやクラウドのセキュリティは2022年もCISOの課題上位–マイクロソフト
IT関連
2022-01-29 16:51
NATOサイバー防衛協力センターに韓国が参加–アジアの国で初
IT関連
2022-05-10 16:25
中小企業こそいち早くガバナンスを効かせて生成AIを生かせ
IT関連
2024-02-16 17:30
CDPの導入有無がマーケティング能力に大きな差–データプライバシー規制への適応力にも自信
IT関連
2023-03-04 18:58
IT人材の副業、コロナ禍後に開始が79.4%
IT関連
2022-12-24 11:09
元の働き方には戻らない–新たなモデルをどう実現するべきか
IT関連
2021-03-03 23:07