SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

初めての6カ月定期アップデートで変わったJava 10、ポイントを押さえよう

varを使って型指定をせずにプログラミング! さらにお手軽になったJava 10

初めての6カ月定期アップデートで変わったJava 10、ポイントを押さえよう 第1回


バージョン番号に関する変更点

 Javaに関するバージョン表記に関するルールが、Java 9で一度変更されたものの、Java 10でリスト10のような表記に再度変更されました。

 これは、Javaに関するリリースが6カ月ごとのサイクルでアップデートされることから、表記上の意味と、実際のバージョンとあわなくなってしまうためと思われます。

[リスト10]バージョンに関する表記
// Java 10での表記
$FEATURE.$INTERIM.$UPDATE.$PATCH

// Java 9での表記
$MAJOR.$MINOR.$SECURITY
$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のようにバージョン情報を取得していました。

[リスト11]Java 8でプログラムからバージョン番号を取得する場合
String version = System.getProperty("java.version"); // "1.8.0_111"
String spec = System.getProperty("java.specification.version"); // "1.8"

 Java 10でも同様の方法で情報を取得できますが、リスト12のようにRuntime.Versionクラスが用意されているので、そちらからも取得可能です。

[リスト12]Java 10でプログラムからバージョン番号を取得する場合
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カ月ごとにバージョンアップされ続ける意味では、バージョンアップというより、定期アップデートと言った方がわかりやすくなると思います。そのような意味が強く反映されたのが、バージョン番号の表記ルール変更です。

 また、バージョンアップのポリシーは機能面だけでなくサポート面などにも大きく影響しています。次回は大きく変わったサポートに関する注意点を中心に紹介します。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
初めての6カ月定期アップデートで変わったJava 10、ポイントを押さえよう 連載記事一覧
この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10872 2018/07/05 11:43

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー