カスタム検索
表示順:
Relevance
Relevance
Date
ウェブ
 
 
 

Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了

2018年3月20日


昨年9月に登場したJava 9から、Javaは6カ月ごとのタイムベースによるアップデートサイクルが採用されました。そしてその最初のワンサイクルが経過し、今日3月20日付けでJava 9の次のメジャーバージョンアップとなるJava 10が登場する予定です。

おそらくJava 10の正式な発表は米国時間の3月20日、日本時間では休日となる明日の午前中あたりになると思われます。

Java 10の新機能:ローカル変数の型推論、ガベージコレクタが入れ替え可能など

Java 9では、通称「Project Jigsaw」と呼ばれるJavaのモジュール化機能が入り、Javaに対する大きな変更が行われました。しかし今回のJava 10では、それほど大きな機能変更や新機能の追加はありません。

Java 10での注目すべき新機能をいくつか挙げてみましょう。

Java 10では、ローカル変数を宣言するときに型推論を用いることで明示的に型を宣言しない記述が可能になりました。Javaの静的型付け言語の特長を維持しつつも、儀式的な記述を減らして使いやすい言語にすることが目的のようです。例えば、次のように記述できます。

var list = new ArrayList<String>();  // ArrayList<String>と推論

また、ガベージコレクタのインターフェイスが導入され、JavaVMのガベージコレクタが入れ替え可能になります。今後、用途に応じたさまざまなガベージコレクタが登場しそうです。

NV-DIMM(不揮発性DIMM)など新しいタイプのメモリにもヒープ領域が配置可能になりました。ストレージクラスメモリなど、これからメインメモリとストレージの中間的な記憶領域などが登場するのに備えているようです。

そのほかJava 10の主な新機能は、Qiitaの記事「Java 10新機能まとめ - Qiita」が参考になります。

Java 10の登場と同時にJava 9のサポート終了

Java 10の登場は、同時にJava 9のサポート期間の終了を意味します。今後はJava 9に対するメンテナンスリリースなどが行われなくなります。そのため、Java 9のユーザーは速やかなJava 10へのアップグレードが求められます。Java 9は昨年9月に登場してから6カ月で、その役割を終えるのです。

Java 9のサポートがJava 10の登場と同時に終了するのは、Java 9が長期サポート対象のバージョン(Long Term Support:LTS)版ではないためです。

現在のLTSは2014年3月にリリースされたJava 8です。Java 8は商用利用では2019年1月まで、個人利用では2020年12月まで無償でメンテナンスリリースを入手可能で、それ以後もオラクルと有償サポート契約を結ぶことでサポートを受けることができます。

そしてこのサポート期間の期限がくるまでに、Java 8の次のLTSである「Java 11」へ移行することが推奨されます。Java 11は今から6カ月後、2018年9月に登場予定です。Java 8の無償メンテナンスリリースが最長で2020年12月まで入手可能なのは、このJava 11への移行期間を十分に設けるためと説明されています。

下記は、日本オラクルが無償版のJDKおよび有償版JDKのサポートポリシーについての説明に用いている図を許可を得て転載したものです。

Javaの新しいサポートポリシー

LTS以外のJavaのバージョンは、次のメジャーバージョンアップの登場と同時にサポートが終了します。

上図でも、JDK 9のサポート期間がJDK 10の登場と同時に終了し、JDK 10のサポート期間がJDK 11の登場と同時に終了していることが分かると思います。

そしてJava 10もLTSではありません。つまり今回登場するJava 10も6カ月後にJava 11が登場するときにはその役割を終えるのです。

今後Javaを開発言語として採用する場合には、6カ月ごとに登場する最新バージョンを積極的にキャッチアップしていくか、それとも3年ごとに登場するLTS版にフォーカスして途中のバージョンはスキップするか、開発期間やカットオーバーのタイミングなどもにらみつつ、プロジェクトごとにポリシーを考える必要があるでしょう。

次のJava 11からはOpenJDKが無償版Javaに

Java 10はまた、無償で入手可能なOracle JDKの最後のメジャーバージョンでもあります。Java 11からのOracle JDKは、オラクルと有償のサポート契約を結んだユーザーにしか提供されなくなります。

そこで、これまで無償で提供されてきたOracle JDKに代わるのが「OpenJDK」です。

Java 11の登場時には、Oracle JDKと同じ機能と品質を備えたオープンソース実装であるOpenJDKがリリースされ、バイナリが無償で提供される予定です。

そしてOpenJDKでもJava 11からは3年ごとにLTSが設定され、LTSに対しては長期的にメンテナンスが行われる計画がある旨、説明されています。

おそらくこの計画については、Java 11のリリース前後にJavaコミュニティからの正式な発表があるのではないでしょうか。

関連記事

本記事で解説した内容は、先月のこの記事で詳しく書いていますのであわせてご覧ください。

follow us in feedly

カテゴリ 開発ツール / 言語 / プログラミング


前の記事
ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

人気記事ランキング

  1. AWSの各種サービスやSDKのドキュメントがオープンソースとしてGitHubに公開。誰でもコントリビュートや再利用が可能に
  2. JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始
  3. Cassandraのストレージエンジンを入れ替えて高速化した「Rocksandra」、Instagramがオープンソースで公開。Javaのガベージコレクションによる遅延を大幅に解消
  4. Stack Overflowが2018年の調査結果を発表。一番使われている言語はJavaScript、一番好きな言語はRustに
  5. マイクロソフト、Windows 10に機械学習の実行環境とAPIを備えた「Windows ML」搭載へ。Windowsを学習済みモデルの実行プラットフォームに
  6. 人気が下降しプログラマの求人も少ないプログラミング言語ワースト10は? 一方で仕事の多い言語は? CodementorXとCoding Dojoの調査結果
  7. マイクロソフト、自社開発したコンテナオーケストレーションツール「Azure Service Fabric」の基盤ソフトをオープンソースで公開
  8. ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供
  9. マイクロソフト、データ分析ツール「Power BI」のHoloLens対応版をリリース。現実空間に重ねてグラフを投影、操作を可能に
  10. 来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)


新着記事 10本


PR - Books


fig

fig

fig