Javaのバージョンと機能 − Java 9から24まで
Java 9から最新のJava 24まで、各バージョンで追加された主要な新機能を一覧で紹介します。バージョンアップを検討する際のリファレンスとしてご活用ください。

IDRSolutionsのプログラマーで、社内のJavaテストを担当しているKieran氏は余暇はガジェットとコードいじりを楽しんでいます。今回、開発者向けブログ記事で、Javaのバージョンとその機能について詳しく解説しています。IDRSolutionsが現在サポートしているJava 8から、今後サポートを検討しているJava 9から24まで、各バージョンで追加された新機能を紹介します。
著者 Kieran France (IDRsolutions) 翻訳 インターワーク
私たちが使うのを楽しみにしているJavaの機能
古いバージョンのJavaをサポートすることのマイナス面の1つは、最新のJDKのリリース日から利用できないことです。バージョン別のさまざまなJava機能を覚えておくと、非常に便利です。サポートする最低バージョンが上がったら、ぜひ使ってみたいJavaの機能がたくさんあります。
最近私たちは、今後数年間にサポートすべきJavaの最小バージョンを決定するために、ユーザーと話し合ってきました。最小バージョンを検討する際には、各バージョンのサポート期間、あるバージョンをまだ使っている人の数、開発者がアクセスできる新機能を念頭に置きたいと考えました。
Javaの古いバージョンのサポートを維持するために時間を費やしていると、各バージョンで導入された機能を忘れてしまいがちです。私たちは現在Java 8をサポートしているので(この記事を書いている時点では)、Java 9 以降から最新のJava 24 までのすべてのバージョンを見直し、それぞれにどの新機能が追加されたかを書き留めておくことは有益だと考えました。この作業が完了したので、私たちが手にするのが楽しみな各バージョンの機能を共有したいと思います(プレビュー機能は無限の可能性があるため割愛します)。
Javaのバージョンとその機能
Java 9 の機能
- [JEP-269] コレクション・ファクトリー・メソッド(例:List.of(a, b, c))
- [JEP-266] ストリームAPIの改善
- [JEP-251] マルチレゾリューション画像API
- [JEP-213] インターフェイスのプライベートメソッド
- [Multiple JEPs] Project Jigsaw: JavaモジュールとマルチリリースJarファイル
JDK 9は2017年9月21日にリリースされました
Java 10 の機能
- [JEP-286] ローカル変数の型推論: var-keyword
- [JEP-307] G1用パラレル・フルGC
JDK 10は2018年3月20日にリリースされました
Java 11 の機能
- 文字列ユーティリティメソッド
- repeat(), isBlank(), strip(), lines()
- ファイルユーティリティのメソッド
- Files.writeString, Files.readString(path)
- [JEP-323] ラムダ・パラメータのローカル変数型推論 (var)
- [JEP-321] 新しい HttpClient API
JDK 11は2018年9月25日にリリースされました
Java 12 の機能
- 文字列ユーティリティメソッド
- indent(), transform()
JDK 12は2019年3月19日にリリースされました
Java 13 の機能
いくつかの機能がありますが、すべてJDKの内部またはプレビューのため、現時点では信頼できません。
JDK 13は2019年9月17日にリリースされました
Java 14 の機能
- [JEP-361] スイッチ式
- [JEP-358] 有用な NullPointerExceptions
JDK 14は2020年3月17日にリリースされました
Java 15の機能
- [JEP-378] テキストブロック / 複数行文字列
JDK 15は2020年9月15日にリリースされました
Java 16の機能
- [JEP-394] instanceof のパターンマッチング
- [JEP-395] レコード
JDK 16は2021年3月16日にリリースされました
Java 17の機能
- [JEP-409] シールドクラス
- [JEP-415] コンテキスト固有のデシリアライズ・フィルター
JDK 17は2021年9月14日にリリースされました
Java 18の機能
- [JEP-400] UTF-8 がデフォルト
- [JEP-408] シンプルWebサーバー
- [JEP-413] JavaDocsのコードスニペット
JDK 18は2022年3月22日にリリースされました
Java 19の機能
いくつかの機能がありますが、すべてJDKの内部またはプレビューのため、現時点では信頼できません。
JDK 19は2022年9月20日にリリースされました
Java 20の機能
いくつかの機能がありますが、すべてJDKの内部またはプレビューのため、現時点では信頼できません。
JDK 20は2023年3月21日にリリースされました
Java 21の機能
- [JEP-431] シーケンス・コレクション
- [JEP-440] 記録パターン
- [JEP-441] スイッチのパターン・マッチング
- [JEP-444] 仮想スレッド
- [JEP-452] キー・カプセル化メカニズムAPI
JDK 21は2023年9月19日にリリースされました
Java 22の機能
- [JEP-456] 名前のない変数とパターン
JDK 22は2024年3月19日にリリースされました
Java 23の機能
- [JEP-467] Markdownドキュメンテーション・コメント
- [JEP-474] ZGC: Generationalモードがデフォルトに
JDK 23は2024年9月17日にリリースされました
Java 24の機能
- [JEP-484] Class-File API
- [JEP-485] ストリーム・ギャザラー
- [JEP-491] ピン留めなしの仮想スレッド同期
- [JEP-486] セキュリティ・マネージャーの完全無効化
JDK 24は2025年3月18日にリリースされました
PDFアプリ開発ツール(SDK)をお探しのみなさま、効率のよい開発作業のためにJPedal、BuildVu、JDeliがきっとお役に立つことと思います。これら3製品は無料で試用していただけますので、まずはお試しのうえ、ぜひ導入をご検討ください。

開発者向けPDF入門ガイド
PDFの仕様や活用方法など、開発者に必要な情報をコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDFのポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。