ニュース

Oracle、「Java 20」を発表 ~変数のスレッド共有を簡潔・高速にする「Scoped Values」を追加

9月リリース予定の次期LTS「Java 21」に向け、仕様の熟成を図る

Oracle、「Java 20」を発表

 米Oracleは3月21日(現地時間)、プログラミング言語「Java」の最新版「Java 20」を発表した。Java開発キット「Oracle JDK 20」の提供も開始されている。

 「Java 20」は非LTSリリースで、サポートは「Java 20」が公開されるまでの6カ月間。少なくとも2回のメンテナンスアップデートが予定されている。

 「Oracle JDK 20」には、以下の7つのJDK拡張提案(JEP)が盛り込まれた。ほとんどは以前のリリースで導入された機能を改善・拡張したものだ。

  • JEP 432:Record Patterns(Second Preview)
  • JEP 433:Pattern Matching for switch(Fourth Preview)
  • JEP 429:Scoped Values(Incubator)
  • JEP 436:Virtual Threads(Second Preview)
  • JEP 437:Structured Concurrency(Second Incubator)
  • JEP 434:Foreign Function & Memory API(Second Preview)
  • JEP 438:Vector API(Fifth Incubator)

 唯一の新たに追加された要素は、「Scoped Values」(JEP 429)のみ。これはスレッド内やスレッド間でデータを共有する仕組み。「ThreadLocal」変数と似ているが、データを不変に限ることでシンプルかつ堅牢で、実行時の最適化などにより、多数のスレッドから共有されるケースで優れた性能を発揮する。「ThreadLocal」を置き換えるものではないが、特定の要素で使い勝手がよく、パフォーマンスを向上させることが可能。

 一方、「Record Patterns」や「Pattern Matching for switch」、「Virtual Threads」は仕様の熟成が進んでおり、9月リリース予定の次期LTS「Java 21」への正式導入が期待される。