「Java 18」正式リリース デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能
Javaの新バージョン「Java 18」の正式版がリリース。Charsetがデフォルトで「UTF-8」になる他、シンプルなWebサーバがJDKに組み込まれる「JEP 408」などの新機能も搭載している。
この記事は新野淳一氏のブログ「Publickey」に掲載された「Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能」(2022年3月23日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
Javaの新バージョン「Java 18」が正式にリリースされました。
Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるバージョンアップが行われ、そのなかの1つのバージョンが3年ごとに長期サポート(LTS:Long Term Support)版に指定されます。
現在のLTS版は2021年9月にリリースされたJava 17です。Java 18は、この次のバージョンとして登場しました。
業務アプリケーションの開発など、一定期間は安定したバージョンを使いたい場合にはLTS版のJava 17を、最新の機能をいちはやく利用したい場合には今回のJava 18を利用するのが適切でしょう。
参考:3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など
CharsetがデフォルトでUTF-8に、シンプルWebサーバ搭載など
Java 18でもっとも大きな変更点といえそうなのは、Charsetがデフォルトで「UTF-8」になることでしょう(JEP 400)。
これまでJavaのCharsetはJavaVM起動時に決定され、デフォルトではOSに従い、オプションが指定されていればそのオプションに従うことになっていました。これがJava 18からはデフォルトでUTF-8が設定されるようになりました。
JEP 400のページでは、これまでデフォルトの状態ではmacOSのJava APIで出力したデータをWindowsの英語もしくは日本語環境のJava APIで読み込むと文字化けが起きていた、という例が示されています。
java.io.FileReader(“hello.txt”) -> “こんにちは” (macOS) java.io.FileReader(“hello.txt”) -> “ã?“ã‚“ã?«ã?¡ã? ” (Windows (en-US)) java.io.FileReader(“hello.txt”) -> “縺ォ縺。縺ッ” (Windows (ja-JP)
すべてのプラットフォームにおいてデフォルトのCharsetがUTF-8になることで、こうした文字化けを防ぐことができるようになります。
シンプルなWebサーバがJDKに組み込まれる「JEP 408」は、開発者にとって便利な機能となりそうです。CLIからWebサーバを立ち上げて静的HTMLを参照できるようになります。サーブレットやCGIなどの動的なページは生成できませんが、プロトタイピングやアドホックな開発の場面で役立つと説明されています。
「JEP 413: Code Snippets in Java API Documentation」は、コードスニペット、つまり小さなコードの断片をJavaDocに組み込むことを可能にする新機能。Java開発者が作るドキュメントにサンプルコードが入るようになるため、より具体的で読みやすくなります。
「JEP 416: Reimplement Core Reflection with Method Handles」は、Java内部で実装されているReflectionsメソッドを、将来の変更に備えてよりセキュアで一貫性の高い形で置き換えた、というもの。
「JEP 417: Vector API (Third Incubator)」は、ベクトル処理に関する最適化や処理性能の向上をしたもの。
「JEP 420: Pattern Matching for switch (Second Preview)」は、文字通りSwitchのなかでパターンマッチングを使えるようにするというものです。
他にもJava 18では多くの機能追加や改善、バグフィクスなどが行われています。詳細はJava 18のページを参照してみてください。
関連記事
- VMware、自宅サーバ愛好家向けに「動作保証はないけど動くらしい」非公式ハードウェアリストを作成 コミュニティーに情報提供を呼び掛け
VMwareが、「vSphere」などの非公式な対応ハードウェア表を作成する。自宅サーバ愛好家や自宅ラック愛好家が利用できるよう、社員が自主的に行ってきた非公式なリストの作成を公式に支援するという。 - Microsoftが「.NET 7 Preview 1」公開 MSBuildによるコンテナビルドなどクラウドネイティブ対応強化
米Microsoftが、フレームワーク「.NET」の次バージョン「.NET 7」最初のプレビューリリース「.NET 7 Preview 1」を公開。.NET 6を基に、クラウドネイティブ対応の強化などさまざまな改善が行われるという。 - オープンソース「cURL」の作者、大企業から「24時間以内にこの質問に答えるように」との無礼なメールを受け取る
オープンソース「cURL」の作者に届いた大企業からのメールの内容が無礼だと話題に。cURLの作者は、問題の背景にオープンソースを理解していないユーザーの存在があると指摘している。 - GitHubがコード検索を強化 正規表現に対応、プログラミング言語別の検索も可能に
GitHubが強化したコード検索機能のプレビュー版を公開。正規表現に対応した他、特定のプログラミング言語を対象にすることや、特定の組織やリポジトリ、ファイルパスなどの検索範囲を指定することなどが可能になった。 - Kotlin開発元が軽量なコードエディタ「Fleet」発表 エディタとバックエンドの分散処理や共同作業に対応
プログラミング言語の「Kotlin」や、統合開発ツール「IntelliJ IDEA」などの開発元であるJetBrainsが、新規に開発した軽量なコードエディタの「Fleet」を発表。他のユーザーとエディタ画面を共有できる機能や、エディタとバックエンドの分散処理が可能な点が特徴という。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.