言語機能の拡張
sealedクラスの正式導入
クラスやインターフェースの継承を明示的に制御できるsealedクラスが正式機能となりました。許可されたサブクラスのみが継承可能です。
public abstract sealed class GeometricShape
permits Circle, Triangle, Rectangle {}
public final class Circle extends GeometricShape {}
public final class Triangle extends GeometricShape {}
public final class Rectangle extends GeometricShape {}
switchパターンマッチング(プレビュー)
switch式で型パターンマッチングが可能になり、コードの簡潔化が図れます。
public String convertType(Object input) {
return switch (input) {
case Byte b -> "Byte: " + b;
case Short s -> "Short: " + s;
case Float f -> "Float: " + f;
case String str -> "String: " + str;
default -> "Unknown type";
};
}
プラットフォームの強化
macOS/AArch64ポート
Apple Silicon(M1チップなど)ネイティブサポートが追加され、macOS上でのARM64アーキテクチャ実行が最適化されました。
macOSレンダリングパイプライン
macOSの2DグラフィックスレンダリングにMetal APIが採用され、OpenGLベースの旧実装から置き換えられました。
セキュリティとカプセル化
JDK内部APIの強制カプセル化
sun.*やその他内部APIへのアクセスがデフォルトでブロックされ、モジュールシステムの整合性が強化されました。
コンテキスト依存デシリアライゼーションフィルター
デシリアライゼーション操作にコンテキスト固有のフィルターを適用可能になり、セキュリティリスクの低減を実現します。
廃止予定機能
Applet APIの廃止
Applet関連APIが廃止予定となり、代替技術への移行が推奨されています。
Security Managerの廃止予定
歴史的なセキュリティモデルであるSecurity Managerが将来の削除を前提に廃止予定となりました。
インキュベータモジュール
外部関数&メモリAPI
ネイティブコードとの連携やメモリ操作を安全に行うAPIが提供されています。
ベクターAPI
ハードウェア支援によるベクトル演算を活用するAPIが第二インキュベータフェーズで提供されています。