Java6で時間が止まった人(私のこと)のためのこれまでのあらすじ。
Java5以降の主な機能追加
「これは重要な変更だっただろ!」というものがあれば理解できていないだけなので教えてください。
リリース日 | Version | 主な変更点 |
---|---|---|
2004年9月 | 5 | ジェネリクス、アノテーション、拡張for文、列挙型、可変長引数、ExecutorService/Future |
2006年12月 | 6 | スクリプト言語サポート。ここで時間が止まる |
2011年7月 | 7 | switchで文字列、ダイアモンド演算子、リソース付きtry文、Fork/Join |
2014年3月 | 8 LTS | ラムダ式、メソッド参照、Stream、Optinal、日時時刻APIの変更 |
2017年9月 | 9 | モジュールシステム。G1GCがデフォルトに。プリミティブのラッパークラスのコンストラクタが非推奨 |
2018年3月 | 10 | ローカル変数型推論 |
2018年9月 | 11 LTS | JavaEE由来のAPIが削除 |
2019年3月 | 12 | プレビュー段階のもの以外は特に目立つ変更はない |
2019年9月 | 13 | プレビュー段階のもの以外は特に目立つ変更はない |
2020年3月 | 14 | switch式。jpackage |
2020年9月 | 15 | テキストブロック、ZGC、Shenandoah GC |
2021年3月 | 16 | record、パターンマッチングinstanceof |
Javaのライフサイクルと商用サポート期間
6ヶ月に1回、3月と9月に新バージョンがリリースされ、3年毎にLTSの長期サポートのバージョンがリリースされています。
サポートが終了するタイミングはJDKのベンダーごとに差があり、たまに変更(基本的に延長)されているので、定期的に公式を確認する必要があります。
8 2014年3月 | 11 2018年9月 | 17 2021年9月予定 | |
---|---|---|---|
Oracle | 2022年3月, 2030年12月 | 2023年9月, 2026年9月 | 2026年9月, 2029年9月 |
Red Hat | 2026年6月 | 2024年10月 | 未掲載 |
Azul Zulu | 2030年12月 | 2026年9月 | 未掲載 |
MS | 提供なし | 2024年10月 | 2027年9月 |
AdoptOpenJDK | 2026年3月 | 2024年10月 | 未掲載 |
Amazon Corretto | 2026年6月 | 2027年9月 | 未掲載 |
各社のライフサイクル掲載ページです
- https://www.oracle.com/jp/java/technologies/java-se-support-roadmap.html
- https://docs.microsoft.com/ja-jp/java/openjdk/support
- https://www.azul.com/products/azul-support-roadmap/
- https://adoptopenjdk.net/support.html
- https://access.redhat.com/articles/1299013
- https://aws.amazon.com/jp/corretto/faqs/
以下を主な情報源にしています。
- 【連載】イマドキのJava徹底入門 | TECH+
- JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
- 最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
- 「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita
- Java新機能メモ(Hishidama's Java up-to-date)
シリーズJava再入門
いまからJava8にしよう!だってJava11よりサポート長いし!という判断もあると思いますが、11に引っ越そうとしている方や、11の次のLTSになることを予定されている17への移行を目指している方向けのJava再入門です。
- Java7以降の歴史 機能追加とサポート期間
- モジュールシステムとクラスパス、Gradle
- Java再入門 JVMオプション
- Java再入門 ~Java11 ジェネリクス、ダイアモンド演算子
- Java再入門 ~Java11 日付時刻API
- ~Java11 リソース付きtry文
- ~Java11 ラムダ式、メソッド参照、Stream、Optional、ローカル変数型推論
- ~Java11 ExecutorService/Future、Fork/Join
- 今後:テキストブロック
- 今後:switch式、パターンマッチングinstanceof
- 今後:record