SHOEISHA iD

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

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

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

 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カ月ごとにバージョンアップされ続ける意味では、バージョンアップというより、定期アップデートと言った方がわかりやすくなると思います。そのような意味が強く反映されたのが、バージョン番号の表記ルール変更です。

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

参考資料

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
初めての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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10872 2018/07/05 11:43

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング