Java Specification

WordPress

Javaの仕様変更とアップデートのフォローアップ

Javaは長年にわたり進化を続けており、新しい機能の追加や既存機能の変更、修正などがリリースごとに行われています。本記事では、Javaの仕様変更やアップデートについて、細かな違いや修正事項をフォローアップしていきます。

Java 8 (2014年3月リリース)

ラムダ式の導入

Java 8で導入された最も大きな機能がラムダ式です。ラムダ式によりコードが簡潔になり、funcitonal programmingのスタイルでコーディングできるようになりました。

// Before Java 8
list.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});

// Java 8 with lambda
list.forEach(s -> System.out.println(s));

Stream APIの追加

ラムダ式と組み合わせて使われるStream APIも追加されました。コレクションに対して様々な操作を行うことができ、パラレルストリームによる並列処理も可能になりました。

その他の変更点

  • JavaFXの標準化
  • 新しいDate/Time API
  • 複数の例外をまとめてcatchできるmulti-catch

Java 9 (2017年9月リリース)

モジュールシステムのProject Jigsaw

Javaでもモジュール概念が導入されました。モジュール間の依存関係を明示的に宣言し、アプリケーションの構成を簡素化することができます。

インターフェースにprivateメソッドを許可

インターフェースにprivateメソッドを定義できるようになり、インターフェース内でのヘルパーメソッドの共有が可能になりました。

その他のアップデート

  • HTTP/2クライアントの導入
  • G1GCの強化

Java 10 (2018年3月リリース)

Javaのリリースサイクルが半年に1回に短縮されたため、Java 10は比較的マイナーアップデートでした。

ローカル変数型推論の導入

var キーワードを使って、ローカル変数の型を推論できるようになりました。

// Before Java 10
String s = "Hello";
List<String> list = new ArrayList<>();

// Java 10
var s = "Hello";
var list = new ArrayList<String>();

Java 11 (2018年9月リリース)

ZGC (Z Garbage Collector)

低レイテンシで、Stop-the-WorldペーズがないZGCが導入されました。大規模データ処理やリアルタイムシステムに適しています。

廃止予定のAPIの削除

Java EEモジュールや32ビット版のパッケージなど、廃止が予告されていたAPIが削除されました。

このように、Javaは継続的に機能拡張やクリーンアップが行われています。毎回のリリースで細かな仕様の変更や修正が加えられているので、アップデートの内容を的確に把握し、移行作業を適切に行う必要があります。次の大きなアップデートは2023年9月に予定されているJava 21です。Java開発者はこうした変更点を常にウォッチし、アプリケーションの最適化とメンテナンスに努める必要があるでしょう。

コメント

タイトルとURLをコピーしました