Javaバージョン履歴

本稿ではJavaプラットフォームの基準であるスタンダード版のメジャーバージョン履歴を説明する。その他にもエンタープライズ版、マイクロ版、カード版といった周辺エディションが存在し、それぞれが個別にメジャーバージョン改訂を行っているが、いずれもスタンダード版改訂を基準にしそれに後発する時系列でリリースされている。

1. バージョン一覧
----------

1.1. JDK 1.0 
-------------------------

Javaプラットフォームの初回バージョンは、ブランド名「Java」プロダクト名「Development Kit」からプロパー名「Java Development Kit」とネーミングされ通称は「JDK」とされた。当初のメジャーバージョン値は小数点第一位にされた。通称にバージョン値を付けたものがリリース名になった。まだ国際化対応はされず英語版のみだった。

ファイル入出力
ネットワーク接続
データコレクション
数学演算
アプレットとセキュリティ
Abstract Window Toolkit

1.2. JDK 1.1 
-------------------------

国際化対応さ

リフレクション
Java Text
Input Method Framework
Java 2D

1.3. J2SE 1.2 「Playground」
--------------------------------------

大幅な技術刷新によりブランド名が「Java 2」に改められた。統合仕様の確立でプロダクト名が「Platform」に改められた。エディションの分化で「Standard」が付加された。こうしてプロパー名「Java 2 Platform, Standard Edition」通称「J2SE」になった。ここからコードネームが付けられるようになった。翌年にエンタープライズ版「J2EE 1.2」とマイクロ版「J2ME 1.2」もリリースされた。

strictfpキーワード
仮想マシンに実行時コンパイラ
Javaプラグイン
Swing
Collection Framework
Security Framework
Java Internet Description Language
Java Accessibility API

1.4. J2SE 1.3 「Kestrel」
----------------------------------

ここからメジャーバージョンのコードネームは鳥獣名、マイナーバージョンは昆虫名にするのが慣例になった。

仮想マシンにHotSpotエンジン
Java Platform Debugger Architecture
Java Name and Directory Interface
RMI over IIOP
Java Sound

1.5. J2SE 1.4 「Merlin」
---------------------------------

このバージョンからJavaコミュニティプロセスによる仕様策定が開始された。

assert キーワード
Java Web Start
正規表現用API
ロギング用API
New I/O
Image I/O
Preferences
Java API for XML Processing
Java Cryptography Extension
Java Secure Socket Extension
Java Authentication and Authorization Service

1.6. J2SE 5.0 「Tiger」
---------------------------------

メジャーバージョン値が整数部分に変更された。言語仕様に大幅な拡張が加えられた。メモリモデル改善でマルチスレッドも軽量化した。他エディションは「J2EE 1.4」「J2ME 1.4」のままだった。この頃に「Java Card Platform」がエディション昇格し、バージョンは独自式のまま「Java Card 2.2」でリリースされた。

ジェネリクス
オートボクシング
列挙型
可変長引数
アノテーション
拡張for文
静的インポート文
Java Management Extensions

1.7. Java SE 6 「Mustang」
-------------------------------------

ブランド名が「Java 2」から「Java」に戻されてプロパー名「Java Platform, Standard Edition」となり、通称が「J2SE」から「Java SE」になった。バージョン値から小数点以下が外された。なおマイナーバージョン更新では再び小数点以下が付けられた。他エディションも「Java EE 5」「Java ME 5」になった。仮想マシンを含めた既存機能の改善と洗練に力が注がれた。

ジェネリクスの拡張。他言語のジェネリックプログラミングと同等に整備した。
Scripting for the Java Platform
Java Architecture for XML Binding
Java API for XML Web Services
Java Compiler API
Unicode正規化 API
差し込みアノテーション
Swingの高速化、Windows用ルック＆フィールの追加、Windowsタスクトレイ表示
Update10で、Java Quick StarterJava Kernelを搭載

1.8. Java SE 7 「Dolphin」
------------------------------------

サン社を買収したオラクル社による初のメジャーバージョンリリースである。

invoke_dynamic API
New File I/O Library
Concurrency Library
暗号化APIに楕円曲線暗号を導入
ネットワークAPIにStream Control TransmissionプロトコルとSockets Directプロトコルを導入
グラフィック関連の強化。Update2でJavaFXの導入

1.9. Java SE 8 
---------------------------

ここでコードネームが廃止された。長期サポートリリース制度下の最終版である。

言語仕様にラムダ式の導入
言語仕様にメソッド参照の導入
関数型インターフェース
Stream API
JavaScriptのコードを埋め込めるNashorn Javaスクリプトエンジンの搭載
型アノテーション
反復アノテーション
Date and Time API
静的結合 Java Native Interface ライブラリ

1.10. Java SE 9 
----------------------------

ここからメジャーバージョンは一定の新機能蓄積を待たずに公開する毎年3月と9月の年2回定期リリース制に変更された。従来の長期サポートが無くなり、原則的に半年間サポートになった。

//従来のパッケージの上にモジュールを追加//
言語仕様の細かな拡張
並行処理ライブラリの拡張
Compact Stringの追加
「JShell」の搭載。コンソール形式でJavaコードを入力し実行結果を確認できる
「The Java Linker」の搭載。ユーザー環境に最適なモジュールと仮想マシンモードを自動選択実行する
仮想マシンに前方コンパイルの導入
XML catalogs
HiDPI Graphicsの導入
G1

1.11. Java SE 10 
-----------------------------

JSR 383にて仕様規定。ここから追加要素の大半は、標準機能相当のJSRではなく、拡張機能扱いのJEPになった。試作段階の機能がお試し用として追加されるようになった。

ローカル変数の型推論
ルート証明書
Unicode language-tag extensions
ガーベジコレクタ・インターフェース
G1用パラレル機能
ZGC第1回試作

1.12. Java SE 11 
-----------------------------

JSR 384にて仕様規定。Java開発環境として「Oracle JDK」と「OpenJDK」の二つが提供されるようになり、前者の商用利用は有償長期サポート契約を結んだ顧客のみになった。Java EEのアップグレードがエクリプス財団による「Jakarta EE」に移譲されたので、JDKにEnterprise版連携モジュールが含まれなくなった。CORBAモジュールも外された。Java FXも取り除かれた。このバージョンは長期サポート対象にされているが、上述の通り有償LTSである。

Dynamic class-file constants
ラムダ式の引数の型推論
HTTPクライアント実装用API
Flight recorder
Unicode 10.0.0のサポート
ZGC第2回試作

1.13. Java SE 12 
-----------------------------

JSR 386にて仕様規定。アップデートで令和改元に向けたセキュリティ対策が施された。

switch文をパターンマッチング 式スタイルに拡張・第1回試作
JVM Constants API
G1用コレクション中断機能
G1用不要メモリ返却機能
ZGC第3回試作
Shenandoah第1回試作=== Java SE 13