1: ノチラ ★ 2018/03/21(水) 15:27:25.64 ID:CAP_USER
昨年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のサポートポリシーについての説明に用いている図を許可を得て転載したものです。
http://www.publickey1.jp/2018/java101112b.gif
http://www.publickey1.jp/blog/18/java_10java_9.html

2: 名刺は切らしておりまして 2018/03/21(水) 15:30:28.17 ID:N39mf3Xc
型推論導入にどれだけ時間費やしたんだよm9(^Д^)プギャー

3: 名刺は切らしておりまして 2018/03/21(水) 15:33:10.35 ID:nrzovG6s
ジャバジャバ
カタカタ(´・ω・`)

4: 名刺は切らしておりまして 2018/03/21(水) 15:34:06.44 ID:lZGfK7Sg
これでJavaの不動の一強体制になりそうだな

5: 名刺は切らしておりまして 2018/03/21(水) 15:34:50.74 ID:X2iXPK4X
またC#のパクリ

6: 名刺は切らしておりまして 2018/03/21(水) 15:37:05.09 ID:lONdDz6k
javaとjava scriptって別物なんですか?

7: 名刺は切らしておりまして 2018/03/21(水) 15:44:42.40 ID:JIlZ5+Ow
未だに8なんだけど

8: 名刺は切らしておりまして 2018/03/21(水) 15:45:23.45 ID:tN8MTmKp
JAVA9ってあったのか

11: 名刺は切らしておりまして 2018/03/21(水) 15:58:11.27 ID:nmcg9Tpd
昔はC#がJavaの真似と言われたけど
今は逆だよな

13: 名刺は切らしておりまして 2018/03/21(水) 15:59:31.39 ID:N39mf3Xc
悪化…JAVA11がLTSだからあと半年しないとどこも採用しないじゃん
Androidにいつ展開されるやら…

14: 名刺は切らしておりまして 2018/03/21(水) 16:06:13.68 ID:ePMoKKo9
1週間前にC初めたばかりの初心者です

15: 名刺は切らしておりまして 2018/03/21(水) 16:08:21.69 ID:lfo5yM+r
以前騒いだ脆弱性は解決してるのけ?

16: 名刺は切らしておりまして 2018/03/21(水) 16:14:08.61 ID:DeUBgAWs
プログラマーがバグを書けないように進化すべきなのに
プログラマーが楽にどうにでも書けるように進化していってる

39: 名刺は切らしておりまして 2018/03/21(水) 17:33:55.77 ID:X2iXPK4X
>>16
砂糖かけすぎてひどい味になった感じ
元から素性の良い言語設計ではなかったけれどさ

17: 名刺は切らしておりまして 2018/03/21(水) 16:18:09.40 ID:kKcIUBb9
OpenJDKでいいじゃん!

18: 名刺は切らしておりまして 2018/03/21(水) 16:19:07.88 ID:Vwn713jj
型推論ってメリットあんの?
プログラム読みにくくなるだけじゃね

19: 名刺は切らしておりまして 2018/03/21(水) 16:23:45.46 ID:ePMoKKo9
>>18
型推論できない言語ってなんで10/3や100/10するだけなのにいちいち気を使わなきゃいけないの?

20: 名刺は切らしておりまして 2018/03/21(水) 16:24:55.50 ID:x23EPLvB
>>18
プログラマが変数名に型の名前を入れるようになってソースは読みやすくなる
その代償として、コンパイルに時間がかかるようになる

29: 名刺は切らしておりまして 2018/03/21(水) 16:38:50.96 ID:zPSdgE6p
>>20
動的型付け言語だとstringsNumみたいに変数名に型名をつけるのが習わしってこと?

31: 名刺は切らしておりまして 2018/03/21(水) 16:42:33.22 ID:lVaCEd0K
>>20
変数名のプリフィクスって何回も廃れては復活してるなぁ

43: 名刺は切らしておりまして 2018/03/21(水) 17:54:00.21 ID:99cQoQsM
>>20
いまどきそんなヘボいコンパイラなくね?
型名入れるのも、最早化石じゃね?

47: 名刺は切らしておりまして 2018/03/21(水) 18:00:15.48 ID:ZVNx4zh6
>>20 はなんか勘違いしてそう

21: 名刺は切らしておりまして 2018/03/21(水) 16:26:55.04 ID:fwvGozsd
結局、次のJava11まで待て。
でOK?

23: 名刺は切らしておりまして 2018/03/21(水) 16:30:26.03 ID:nFPGFMdZ
Javaのサポートって法人でもそんなに影響あるのかね?
うちは既存アプリに影響でるから、アップデートすらしてないわ
WebSphereのサポートが外れるタイミングでバージョンあげてる

28: 名刺は切らしておりまして 2018/03/21(水) 16:38:32.85 ID:waBDQvSd
>>23
個人であるオマエすらアップデートしてないんだろ?
法人なら尚更だろう
サービスを停止中は業務が滞ってしまうのに、人件費は払わないといけない

24: 名刺は切らしておりまして 2018/03/21(水) 16:30:30.30 ID:zioqYiet
Javaのサポートって法人でもそんなに影響あるのかね?
うちは既存アプリに影響でるから、アップデートすらしてないわ
WebSphereのサポートが外れるタイミングでバージョンあげてる

25: 名刺は切らしておりまして 2018/03/21(水) 16:31:00.43 ID:nFPGFMdZ
失礼何故か2連投に…

26: 名刺は切らしておりまして 2018/03/21(水) 16:33:05.91 ID:fIdqr9jW
>>25
無能

27: 名刺は切らしておりまして 2018/03/21(水) 16:33:57.02 ID:Am22l9q7
まあ状況によっては
new で型を指定して
変数宣言で型を指定して
みたいな二度手間になりがちではあるかもな

30: 名刺は切らしておりまして 2018/03/21(水) 16:39:56.92 ID:VY7LOQ9J
もうJava使ってないや俺
いろんな言語とプラットホームでバリバリ書くようになってからはJavaであるメリットが無い

32: 名刺は切らしておりまして 2018/03/21(水) 16:58:07.11 ID:+LzA75PE
最近のC++もほとんど↓みたいな感じだからね

auto value = うんたらかんたら

33: 名刺は切らしておりまして 2018/03/21(水) 17:03:28.76 ID:5WmeKTW1
半年しか使われないバージョン

34: 名刺は切らしておりまして 2018/03/21(水) 17:05:12.15 ID:Ek67ERJb
var listって時点で型が入ってるからなあ

35: 名刺は切らしておりまして 2018/03/21(水) 17:10:34.43 ID:pdq/q0kp
ジャップが喜びそうな糞機能だね

36: 名刺は切らしておりまして 2018/03/21(水) 17:14:44.28 ID:VqMFqWaD
遅すぎじゃねw

37: 名刺は切らしておりまして 2018/03/21(水) 17:27:53.96 ID:etyM8DVP
はえーよ

38: 名刺は切らしておりまして 2018/03/21(水) 17:32:45.93 ID:iYq0rGjI
やっと8への移行済んだばっかりなんだけどもう10かよ(´・ω・`)

40: 名刺は切らしておりまして 2018/03/21(水) 17:44:42.91 ID:oUazQ6u0
オブジェクトをvoidにいれてもオブジェクト

41: 名刺は切らしておりまして 2018/03/21(水) 17:45:50.11 ID:e2bigyWn
Java?phpで良くね?

42: 名刺は切らしておりまして 2018/03/21(水) 17:49:51.87 ID:99cQoQsM
ガベコレ入れ替えられるのって、斬新だね
いざバグるその日までは

44: 名刺は切らしておりまして 2018/03/21(水) 17:56:15.66 ID:Hnw/WgJt
新たな地獄の始まり