「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
国家公務員の採用試験に「デジタル」新設 2022年度から 平井大臣「行政のデジタル化に対応」
企業・業界動向
2021-04-29 14:48
17歳のTikTokトップスター、チャーリー・ダミリオ氏の一家が自撮加工アプリFacetuneで知られるLightricksに投資
IT関連
2022-02-25 16:08
「IDや認証はITだけの問題ではなく、サービスそのもの」–野村證券が投資情報アプリに「Auth0」を活用
IT関連
2021-08-05 02:21
辞めた会社に戻る「ブーメラン社員」は人材不足の有力な解決策だ
IT関連
2022-07-14 03:37
HP、Chrome OS搭載デスクトップ「Chromebase All-in-One」発売 650ドルから
製品動向
2021-08-12 23:40
高齢者向けフィットネスプログラムのBoldがシードラウンドで約7.4億円を調達
ヘルステック
2021-02-07 18:25
iPhoneのあれこれ–iOS 16からブラウザーのキャッシュクリアまで
IT関連
2023-01-24 06:53
キヤノンITS、ローコード開発基盤「WebPerformer」の最新版をリリース
IT関連
2021-01-26 04:22
ITプロフェッショナルがキャリアを磨くために今必要なこと–ボーイングのCIOに聞く
IT関連
2022-04-02 13:44
Adobeは新しいシンプルなデジタル資産管理ツールをローンチ
ソフトウェア
2021-04-29 23:32
Match Groupがひとり親向け最新デートアプリ「Stir」を米国で提供開始、スケジュール管理機能搭載
IT関連
2022-03-23 16:42
日立ハイテク、AIで半導体製造装置の生産計画立案を自動化
IT関連
2023-05-26 11:15
「ChatGPT」を使ったアプリ開発–プロセスごとの活用方法とプロンプト例
IT関連
2023-08-31 00:41
タイ味の素社、全社のマネジメント変革で「SAP S/4HANA」導入–アビームが支援
IT関連
2023-09-30 18:53