バージョン番号に関する変更点
Javaに関するバージョン表記に関するルールが、Java 9で一度変更されたものの、Java 10でリスト10のような表記に再度変更されました。
これは、Javaに関するリリースが6カ月ごとのサイクルでアップデートされることから、表記上の意味と、実際のバージョンとあわなくなってしまうためと思われます。
$FEATURE
機能リリース番号を示します。Java 9では$MAJORに相当した値です。半年間隔でリリースされるバージョン番号に相当します。例えば、Java 10では"10"になり、Java 11では"11"になります。
$INTERIM
中間リリースを示します。Java 9では$MINORに相当した値です。Java 10.1がリリースされた場合の"1"に相当する部分です。
$UPDATE
アップデートリリースを示します。Java 9では$SECURITYに相当した値です。すでに、Java 10.0.1がリリースされているように、アップデートされるごとに数がインクリメントされていきます。
$PATCH
パッチリリースを示します。重大な問題解決のためのリリースの値です。
また、Java 8まではJavaのバージョンを取得する際、リスト11のようにバージョン情報を取得していました。
Java 10でも同様の方法で情報を取得できますが、リスト12のようにRuntime.Versionクラスが用意されているので、そちらからも取得可能です。
var version = Runtime.version(); var version = version.feature(); // 10 var interim = version.interim(); // 0 var update = version.update(); // 1
また、Runtime.VersionクラスはJava 9から提供されていますが、バージョン表記の変更に従い、major()メソッドやminor()メソッドなどは、推奨されないAPIに変更されています。
最後に
今回、Java 10に関するAPIや言語仕様面での変更を中心に紹介しましたが、これまでのJava 7、Java 8、Java 9と続いたバージョンアップとは大きく異なり、機能面の追加については小さな変更になっています。
2年、もしくは3年といった長いスパンでのバージョンアップに比べると変更点は小さくなります。今後、6カ月ごとにバージョンアップされ続ける意味では、バージョンアップというより、定期アップデートと言った方がわかりやすくなると思います。そのような意味が強く反映されたのが、バージョン番号の表記ルール変更です。
また、バージョンアップのポリシーは機能面だけでなくサポート面などにも大きく影響しています。次回は大きく変わったサポートに関する注意点を中心に紹介します。