1: ノチラ ★ 2018/03/21(水) 15:27:25.64 _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のサポートポリシーについての説明に用いている図を許可を得て転載したものです。
no title

http://www.publickey1.jp/blog/18/java_10java_9.html
引用元: http://egg.5ch.net/test/read.cgi/bizplus/1521613645/


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

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

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

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

73: 名刺は切らしておりまして 2018/03/22(木) 01:22:28.87
>>6
メロンとメロンパンくらいには違う

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

10: 名刺は切らしておりまして 2018/03/21(水) 15:56:42.38
>var list = new ArrayList<String>(); // ArrayList<String>と推論

Arrayって書いてるけど、どこが型推論なのこれ?

12: 名刺は切らしておりまして 2018/03/21(水) 15:58:36.23
>>10
そこが肩推論w

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

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

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

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

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

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

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

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

72: 名刺は切らしておりまして 2018/03/22(木) 00:28:08.17
>>19
型推論使うと、ちゃんとint, floatと推論してくれるの?

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

22: 名刺は切らしておりまして 2018/03/21(水) 16:29:26.69
varとかやめようよ…

77: 名刺は切らしておりまして 2018/03/22(木) 01:43:47.47
>>22
letならいいの?

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

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

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

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

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

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

auto value = うんたらかんたら

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

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

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

46: 名刺は切らしておりまして 2018/03/21(水) 17:56:54.79
型推論たって、ジェネリクスと組み合わせると
なんちゃらみたいな、制限だらけなんだろ

50: 名刺は切らしておりまして 2018/03/21(水) 18:38:30.64
入れたら
ウザイ広告がw

52: 名刺は切らしておりまして 2018/03/21(水) 19:24:54.02
list =[]で済むことを長々と書いてんだもんなあ
そら開発効率悪いわ

56: 名刺は切らしておりまして 2018/03/21(水) 19:42:22.86
>>52
配列はめんどくさい

59: 名刺は切らしておりまして 2018/03/21(水) 19:45:11.69
>>56が言いたいのは、そういうことじゃなくて
JavaのがArrayListなんちゃらというのが非効率てこと
他の言語なら xs = []; xs.push('a')
とかで終わる話なのにょ

61: 名刺は切らしておりまして 2018/03/21(水) 19:53:05.19
>>59
ああ、他言語の話ね
でもそれはマルチスレッド前提にインターフェース統一する時にどうしても必要になることじゃない?

53: 名刺は切らしておりまして 2018/03/21(水) 19:34:22.94
後でソース見る人も人力で型類推しないといけなくなる
まぁそんな所を見る機会は稀だろうが

57: 名刺は切らしておりまして 2018/03/21(水) 19:43:07.43
>>53
IDEで見ればマウス当てれば型わかるしー
まさかIDEなしでソースみる芸当?

60: 名刺は切らしておりまして 2018/03/21(水) 19:45:54.83
Javaってバージョンに因って動く動かないが顕著にあるからめんどい。

62: 名刺は切らしておりまして 2018/03/21(水) 19:55:11.53
>>60
Write once, debug everywhere.

65: 名刺は切らしておりまして 2018/03/21(水) 20:21:30.38
検査例外無くせよ。

68: 名刺は切らしておりまして 2018/03/21(水) 20:57:31.29
>>65
検査例外ってあれな
昔Javaってたけど、あれ本当に嫌いだった
真面目にやろうとするとそこら中でthrows書く羽目になる
面倒だからみんなRuntimeExceptionを継承した例外クラスで
ラップしてたわw

67: 名刺は切らしておりまして 2018/03/21(水) 20:51:46.69
Javaって生きてたんかい
C#に取って代わられたんじゃなかったのか

69: 名刺は切らしておりまして 2018/03/21(水) 20:58:15.62
PGの資格欲しいんですけどC#の資格って有りますか?

70: 名刺は切らしておりまして 2018/03/21(水) 21:07:32.78
>>69
つ「microsoft 資格 c#」

以下は俺の主観だけど、
資格持ってるだけの人ってあんまり信用されんよ
言語オタクと資格オタクみたいに、勉強と記憶だけ出来て、
プログラミングに必要な思考が全然駄目って人いるからさ

実際のシステムで揉まれた実務経験が一番だと思うよ
その上で資格持ってたら、説得力と印象がほんの少し上がる程度

74: 名刺は切らしておりまして 2018/03/22(木) 01:33:21.47
型推論ってC#の後追いか?

75: 名刺は切らしておりまして 2018/03/22(木) 01:39:42.77
C#も最初はJavaの後追いみたいなもんだったし
ガーベッジコレクタとかほかの言語処理系由来のものも多いし
どの言語も、よその言語のエッセンスをとりいれて進化してるってことなんだろうな
とくに関数型言語あたりから

78: 名刺は切らしておりまして 2018/03/22(木) 01:58:43.24
最初のVMバイトコードをネームドメモリにしなかった時点で先が無いのは見えていた。
アドレスアクセスじゃなんも進化が無いつーの

79: 名刺は切らしておりまして 2018/03/22(木) 02:02:16.65
今Androidアプリのメンテで仕方なくJavaやってるけど型推論使えなくてストレスたまってるから早くAndroidでJava10コンパイラ使えるようにして欲しいね

80: 名刺は切らしておりまして 2018/03/22(木) 02:06:01.10
>>79
こういう奴が、俺流でコーディングして他人にストレス与えるんだよな。

81: 名刺は切らしておりまして 2018/03/22(木) 02:40:56.55
>>80
型推論使ったらオレ流って酷い言いがかりだね

82: 名刺は切らしておりまして 2018/03/22(木) 02:47:34.80
型推論の有効性は、オブジェクト指向で担保されてるんだよ
オブジェクト指向の抽象化では、メッセージング(呼び出し)相手は
具体的な型を特定しないで済むように設計されるのが当たり前(いわゆる多態性)
だから、var というのは相手の型を無意味に特定しないという意味で必要な機能

しかも、強い型システムをもつ言語では「受け取れないメッセージ」については
コンパイル時エラーを出力できるから、Objective-Cみたいな「送ってみたら
相手が間違ってるから実行時エラー」みたいな厄介な事態も事前に回避できるので、
あまり副作用がないんだよね

ただし、数値型に var を使うと、特に整数型と浮動小数点数型で意図しない結果になることがあるので注意

85: 名刺は切らしておりまして 2018/03/22(木) 05:55:44.88
動的っぽいけど書いてるのはジャバだお

86: 名刺は切らしておりまして 2018/03/22(木) 06:16:42.61
ジャヴァ神

スポンサード リンク