Java言語仕様¶
- 目次
- Java言語仕様
原典¶
次のWebサイトでJava言語仕様文書およびJava仮想マシン仕様文書が公開されています。2023-11-30現在、Java SE 21版が最新です。
https://docs.oracle.com/javase/specs/index.html
変更点¶
言語仕様に関する変更をまとめます。
Java SE 21¶
2023.9リリース
- シーケンスコレクション[JEP 431]
- レコードパターン[JEP 440]
- switchのパターンマッチング[JEP 441]
Java SE 18¶
2022.3リリース
- <プレビュー版(続)> switchのパターンマッチング [JEP 420] *
Java SE 17¶
2021.9リリースのLTS版。
- switch式
- テキストブロック
- instanceofのパターンマッチング (JLS 6.3.1, 6.3.2, 14.30, 15.20.2)
- record型 (JLS 8.10 Record Declarations)
- NullPointerExceptionのメッセージ改善
T.B.D.
Java SE 16 での変更¶
- instanceofのパターンマッチングの正式導入(プレビューから正式仕様へ昇格) [JEP 394]
- record型の正式導入(プレビューから正式仕様へ昇格) [JEP 395]
- <プレビュー版(続)> sealedクラス [JEP 397]
Java SE 15 での変更¶
- <プレビュー版> sealedクラス [JEP 360]
- <プレビュー版(続)> record型 [JEP 384]
- テキストブロックの正式導入(プレビューから正式仕様へ昇格) [JEP 378] *
Java SE 14 での変更¶
- <プレビュー版> record型(シャローなイミュータブルクラスのシンタックスシュガー) [JEP 359]
- <プレビュー版> instanceofのパターンマッチング [JEP 305]
- NullPointerExceptionのメッセージ改善(nullの変数名を提示) [JEP 358]
- switch式の正式導入(プレビューから正式仕様へ昇格) [JEP 361]
- <プレビュー版(続)> テキストブロック [JEP 368]
Java SE 13 での変更¶
- <プレビュー版> テキストブロック [JEP 355]
- <プレビュー版(続)> switch式 [JEP 354]
Java SE 12 での変更¶
- <プレビュー版> switch式 [JEP 325]
Java SE 11¶
2018.9リリースされたLTS版。
Java SE 11 での変更¶
- ラムダ式内のパラメータにローカル変数型推論(var)を利用可能 [JEP 323]
Java SE 10 での変更¶
- ローカル変数の型推論。varは予約語ではなく、ローカル変数宣言で特別な意味を持つ型 "TypeIdentifier" の概念を導入 [JEP 286]
Java SE 9 での変更¶
- モジュールシステム [JSR 376, JEP 261]
- 単独のアンダースコア('_')は識別子として無効 [JEP 213]
- try-with-resourcesでtry構文の外部で定義された変数を利用可能 [JPE 213]
- interface に private メソッドを定義可能 [JEP 213]
- 無名クラスの宣言時にダイヤモンド演算子を利用可能 [JEP 213]
- private インスタンスメソッドに @SafeVarargs利用可能 [JEP 213]
- Unicode 7.0/8.0 [JEP 227/267]
Java SE 8¶
2014.3リリースされたLTS版。
- タイプアノテーションの追加によるアノテーション定義位置の追加
- タイプアノテーションおよびラムダ式の記法に伴う区切り子、演算子の追加
- effectively finalの導入
: