Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能

2022年3月23日

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のページを参照してみてください。

関連記事

AWS Corretto 18もリリースされました。

このエントリーをはてなブックマークに追加
follow us in feedly


関連タグ Java / プログラミング言語 / Oracle



タグクラウド(β版)

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本