投稿日: Mar 22, 2022

Amazon Corretto 18 の一般提供を開始しました。このバージョンは、最新の Java 機能リリース OpenJDK 18 をサポートしており、Linux、Windows、および macOS でご利用いただけます。Corretto 18 はダウンロードページからダウンロードできます。Amazon Corretto は、マルチプラットフォームで、本稼働に対応した、無料の OpenJDK ディストリビューションです。Corretto は、オープンソースライセンスに基づいて Amazon によって配信されます。

OpenJDK 18 は、新しい Internet-Address レゾリューション機能、Simple Web Server、Vector API の更新、JavaDoc の新しい @snippet タグ、Core Reflection の新しい実装、標準 Java API のデフォルト文字セット (charset) として UTF-8 への変更、外部メモリ API の二度目の反復、スイッチ文のパターンマッチングの進展、そしてファイナライゼーションの非推奨を提供します。

  • 新しい Service Provider Interface (SPI) によって、デベロッパーは JVM に構築されたデフォルトのリゾルバー以外のインターネットアドレスリゾルバーを指定することができます。主な利点は、現在インターネットアドレス変換を行う際に発生するオペレーティングシステムコールに関連するブロッキングの問題を軽減することです。これは、特に仮想スレッドを使用するアプリケーションに役立ちます。
  • OpenJDK 18 に含まれる Simple Web Server では、静的ファイルを提供するためのコマンドラインツールが提供される予定です。デベロッパーはこれを使用して、プロトタイピング、アドホックコーディング、およびテストをすることができます。
  • Vector API は、当初 OpenJDK 16 で導入されました。OpenJDK 17 で改良され、OpenJDK 18 ではさらに強化されました。最新バージョンでは、ARM Scalar Vector Extension (SVE) Platform をサポートし、ベクトル演算のパフォーマンスを向上させました。
  • デベロッパーが JavaDocs にソースコードのサンプルを追加できる新しい機能が追加されました。@snippet アノテーションを使用することで、デベロッパーはドキュメントにコードフラグメントを追加することができます。
  • OpenJDK 18 には、リフレクションの実装方法に関するアップデートが含まれています。この変更により、java.lang.reflect.Method、Constructor、Field が java.lang.invoke メソッドハンドルに移動し、メソッドハンドルがリフレクションを行う基本的な方法となりました。
  • OpenJDK 18 は、標準的な Java API のデフォルト文字セットとして UTF-8 を使用しています。これにより、オプションの文字セット属性が API に渡されない場合、API はより予測可能な方法で動作することができます。
  • OpenJDK 18 では、デベロッパーが Java Native Interface (JNI) を使用せずに、JVM の外部のコードやデータと相互運用できるようにするため、新しい API が導入されています。これは、OpenJDK 17 で起動したインキュベーティング API に続くもので、前回の反復に多くの改良が加えられています。
  • スイッチ文の Pattern Matching の 2 回目のプレビューは、OpenJDK 18 に含まれています。この機能の初回起動は、OpenJDK 17 に含まれていました。OpenJDK 18 では、改良が加えられ、ケースラベルにパターンを表示できるようになり、以前からあった新しい機能の導入が可能になり、デベロッパーが定義した nullity の動作が可能になりました。
  • ファイナライゼーションは今後の JDK リリースで削除される予定で、OpenJDK 18 ではこの機能は非推奨となっています。

これらの機能の一覧と詳細については、こちらをご覧ください。