怒Mは思いつきでモノを言う

やったことメモなどなど

JJUG ナイトセミナー 「Java SE 10 / JDK10リリース特集」に行ってきた。

※下書きで書いてたのを忘れていたため供養投稿

Java10がリリースされましたね。 まだ、Java9もインストールしていなかったのに・・・ 仕事ではJava6からJava8になったばっかりだし。

JDKリリースモデル

Oracle JDKについては、Oracleとの契約が必要になるようですね。

OpenJDK Oracle JDK
サポート 無償 有償
サポート期間 STS、LTS※ LTS
機能 Oracle JDKと同じ
機能リリース 6ヶ月単位のリリース 6ヶ月単位のリリース
メンテナンス 3ヶ月単位のパッチ 3ヶ月単位のパッチ

※2018/5/22追記
きしだなおき氏のJavaのサポートについてのまとめ を見まして、OpenJDKのサポートについてちゃんと理解していなかったなーと考え、 追記しました。
団体ごとにサポートポリシーは違うんですね。

Java SE 10

2018年3月21日にリリースされました。
けど、2018年9月にはJava SE 11がリリース予定。
Java SE 10のサポートは Java SE 11までの短い寿命だから、 開発でお試し程度にして使ってね。

var:型推論が実装 JEP 286

ローカル変数の型推論が実装されました。
読みやすくなる。短くなる。やったー。

なぜ「ローカル変数」だけ?
フィールドやメソッドの引数に適用すると、影響範囲が複数のファイルにまたがってしまう。

varの制限

varには制限がある。

// 以下は全部error
var x;
var x[] = new int[i];
var x = 1, y = 1;
var x = {1, 2, 3};
var x = null;

Java予約語・キーワード

  • 予約語:識別子として使える
  • キーワード:言語の中で役割がある

varはキーワードで、class名に使えない。

int x = 3900; // OK
var var = var(); // OK
class var {} // NG

原則・ガイドライン

下記のOracle Blogを参照するのがいいと思います。

orablogs-jp.blogspot.jp

終わりに

仕事で使う時にはJava SE 11になっているだろうなー。