「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
NEC、ダッカ市の交通料金システム統合へ–共通ICカードの利用範囲拡大に向け
IT関連
2021-02-09 05:25
エア・ウォーター・デジタル、基幹システムのサービス品質向上でオブザーバビリティ基盤を導入
IT関連
2024-03-23 19:31
IT大手規制論者のリナ・カーン氏、FTC委員長に
企業・業界動向
2021-06-17 09:08
ヤマハ、従業員体験の管理で働きがいと働きやすさを継続的に改善
IT関連
2022-12-02 05:55
国内のDesktop as a Service市場規模、2021年度は約326億円。5年後には1.6倍以上の545億円規模に
クラウド
2022-03-22 17:36
集英社、複製原画の販売にブロックチェーン活用 所有者や真贋を証明し漫画を“美術品”に
企業・業界動向
2021-03-02 04:21
ロケット打ち上げのAstraがNASAの嵐観測衛星打ち上げ契約を獲得
宇宙
2021-02-28 19:40
「バクラク申請」「バクラク経費精算」、承認の自動リマインダー機能を追加
IT関連
2022-07-06 23:22
AWSにサーバ停止されたParlerが復活 暫定CEOにトランプ氏支持の右派団体代表
IT関連
2021-02-17 10:23
初代「Oculus Quest」もPCとの無線接続に対応へ ザッカーバーグCEOが予告
製品動向
2021-06-18 08:59
2024年における世界のIT支出は5.3%増–Forrester予測
IT関連
2024-01-23 20:25
顧客事例のニュースリリースは製品ベンダーだけでなくパートナー企業の情報も記せ
IT関連
2022-07-01 15:18
NEC、宇宙船「オリオン」開発元に異常検知AIを提供 問題発生時の早期対処を支援
ロボット・AI
2021-03-03 17:31
筑波大、5Gで飛行中のドローンへ無線給電 30秒間途切れることなく送受電に成功
科学・テクノロジー
2021-07-09 05:29