プロジェクト

全般

プロフィール

Java言語仕様

原典

次のWebサイトでJava言語仕様文書およびJava仮想マシン仕様文書が公開されています。2021-08-07現在、Java SE 16版が最新です。
http://docs.oracle.com/javase/specs/

変更点

主にLTS版の間での言語仕様に関する変更をまとめます。

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の導入