SlideShare a Scribd company logo
Java 10以降の
Javaリリース
関西Javaエンジニアの会 /
ポノス株式会社
阪田 浩一 @jyukutyo
#kanjava
Disclaimer
以下の事項は個人の理解に基づいています。
正確な情報を提供することに努めています
が、誤りがあることがあります。何かを確
約するものではないため、この情報を元に
判断なさらないでください。
会長だけどじゅくちょー
• 阪田 浩一 / じゅくちょー
• 関ジャバ会長(JUGリーダ)
• JVMが大好き
• ポノス株式会社(スマホゲーム会社)
Java release cadence has been changed and about Project Amber
昨年9/21
リリース
10はいつ?
あと1ヶ月後!
Java release cadence has been changed and about Project Amber
3/20
リリース予定
Javaの
リリースサイクルが
変わったことは
ご存知ですか?
半年ごとに
新バージョンが
リリースされる
今まで
どうだったかと
言うと…
今までのJavaリリースサイクル
• 2年ごとにメジャーアップデート
– 達成されたこと、あったっけ?
• 8 - 8ヶ月遅れ
• 9 – 1年半遅れ
• 計画した機能が完成すればリリース
– 複雑な機能の完成時期に左右される
• 9 - JPMS
今後は…
今後のJavaリリースサイクル
• 半年ごとにリリース
– 10 – 3/20
– 11 – 今年9月
• 3ヶ月ごとにメンテナンス/セキュリティリリース
– 4月と7月 / 10月と1月
• サポートは半年(次のリリース)まで
新機能を
できるだけ早く
使えるように
無償版のOracle JDKは
なくなる
OpenJDKのビルドが
代わりとなる
ライセンスはGPL
(たしか
クラスパス例外付き
GPLv2)
Oracle JDKとOpenJDK
• 機能的な差はない(TCKにより保証)
– Oracle JDKには
• オラクルのバイナリコードライセンスがある
• 一部のコードが異なる
• クローズドソースのサードパーティのコンポーネ
ントが含まれている
– グラフィック・ラスタライザ、サード・パーティ・フォ
ント、追加ドキュメントなど
• 商用機能がある
Oracle JDKには
商用機能が
あるのだが…
商用機能は
OpenJDKへ統合される
商用機能
• AppCDS
• Java Flight Recorder
• Java Mission Control
• ZGC
AppCDSは
現在のJava 10に
統合済み
残りも
統合作業中
(Java 11以降)
よくある疑問
半年ごとに
バージョンアップしない
といけないの?
Java release cadence has been changed and about Project Amber
OpenJDKにも
LTSバージョンが
あります!
Java release cadence has been changed and about Project Amber
LTSは3年ごと
最初のLTSは11
サポート期間は
次のLTSバージョンまで
の3年
公式情報は
出ていないが
Devoxx,FOSDEM,
JfokusでMarkさんが
話している
Oracleの
Javaプラットフォーム
チーフアーキテクト
Mark Reinholdさん
動画はこちら
• FOSDEM
– https://youtu.be/1l0WrKrSAVI
• Jfokus
– https://youtu.be/-YEuNf8a7hk
5日違いのカンファレンスですが
内容は半分しか重なっていません…
Oracle JDKは
有償サポートとなる
LTSの有償サポート
Premier Support リリースから5年
Extended Support 上記に加え +3年
Sustaining Support 無期限
http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
有償サポート
バージョン リリース
Premier
Support
Extended
Support
Sustaining
Support
9
(non-LTS) 2017年9月 2018年3月 設定なし 無期限
10 (18.3)
(non-LTS) 2018年3月 2018年9月 設定なし 無期限
11
(18.9-LTS) 2018年9月 2023年9月 2026年9月 無期限
http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
Java 8の
公式アップデートは
2019年1月まで
時期を考えると
8 -> 11
というのがよさそう
(11は18年9月リリース
8は19年1月まで)
新しい
リリースモデルへの
よくある誤解
新しいリリースモデルへの誤解
❌LTSでないリリースは
”実験的”リリースである
新しいリリースモデルへの誤解
❌各リリースは
過去の各リリースの
ように
破壊的である
新しいリリースモデルへの誤解
❌古い機能は
予告から3年後に
削除される
新しいリリースモデルへの誤解
❌更新が頻繁でない
システムなら
LTSでないリリースは
無視してよい
新しいリリースモデルへの誤解
❌LTSでないリリースは
アップデートが
2回しかない
新しいリリースモデルへの誤解
❌LTSリリースは
3年以上サポートされる
ことはない
では来月リリースの
Java 10には
どんなものが?
Java release cadence has been changed and about Project Amber
Java 11以降は?
Java release cadence has been changed and about Project Amber
今日はAmberに
焦点を絞ります
Amber
• ”お作法”を少なく
– ローカル変数の型推論(var)
– データクラス
– 式としてのswitch
– sealed型
– パターンマッチ
サンプルコードを
使ってご紹介
ローカル変数の
型推論
Javaにおける
型推論の歴史
List<String> l =
Collections.<String>emptyList();
List<String> l = Collenctions.emptyList();
--
List<String> l = new ArrayList<String>();
List<String> l = new ArrayList<>();
--
Predicate<String> p =
(String s) -> s.length() == 0;
Predicate<String> p = s -> s.length() == 0;
URL url =
new URL(”http://openjdk.java.net”);
var url =
new URL(”http://openjdk.java.net”);
型推論
• not 動的型付き
• コンパイラが型を補完してくれる
イメージ
var hello = ”hello”;
hello = 1;
データクラス
まず、
いわゆる”入れ物”クラス
class Point {
final double x;
final double y;
Point(double x, double y) {
this.x = x;
this.y = y;
}
double x() { return x; }
double y() { return y; }
public boolean equals(Object o) {…}
public int hashCode() {…}
public String toString() {…}
}
データクラス導入で
これだけになる
record Point(double x, double y);
final double x;
final double y;
Point(double x, double y) {
this.x = x;
this.y = y;
}
double x() { return x; }
double y() { return y; }
public boolean equals(Object o) {…}
public int hashCode() {…}
public String toString() {…}
}
ScalaやKotlinと
近い感じ
必要なメソッドは
定義/オーバーライド
できる
record Point(double x, double y) {
@Override
public int hashCode() {
return x * 92821 * x;
}
public double norm() {
return Math.sqrt(x*x + y*y);
}
}
次に
switch式、
sealed型、
パターンマッチを
合わせた例
Java release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project Amber
switch文に
型を使えるように
Java release cadence has been changed and about Project Amber
ラムダのような記法に
Java release cadence has been changed and about Project Amber
sealed型にすることで、
他に実装クラスが
ないことを
保証できる
Java release cadence has been changed and about Project Amber
default節を
削除できた
さらに、
switchで
データクラスは
分解できる
Java release cadence has been changed and about Project Amber
当然ここでも
varが使える
Java release cadence has been changed and about Project Amber
Java 9から
_(アンダースコア1文字)
は予約語
Amberが入ると
使わない変数を
”_”で表現できる
Java release cadence has been changed and about Project Amber
Java 11以降
こんな感じに
なっていく
予定
(まだこれらすべてを
試せるブランチは
探したけれど
なかった)

More Related Content

More from Koichi Sakata (20)

PPTX
Introduction to JIT Compiler in JVM
Koichi Sakata
 
PPTX
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
 
PPTX
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
 
PPTX
Introduction to GraalVM and Native Image
Koichi Sakata
 
PPTX
Introduction to GraalVM
Koichi Sakata
 
PPTX
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
 
PPTX
Bytecode Manipulation with a Java Agent and Byte Buddy
Koichi Sakata
 
PPTX
Great Ideas in GraalVM
Koichi Sakata
 
PPTX
Graal in GraalVM - A New JIT Compiler
Koichi Sakata
 
PPTX
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
Koichi Sakata
 
PPTX
from Java EE to Jakarta EE
Koichi Sakata
 
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
PPTX
KANJAVA PARTY 2017 前説
Koichi Sakata
 
PPTX
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
Koichi Sakata
 
PPTX
“Purikura” culture in Japan and our web application architecture
Koichi Sakata
 
PPTX
デブサミ2017 Javaコミュニティ作ったら人生変わった
Koichi Sakata
 
PPTX
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
 
PPTX
日本からJavaOneに行こう!
Koichi Sakata
 
PPTX
Seasar2で作った俺たちのサービスの今
Koichi Sakata
 
PDF
How Scala code is expressed in the JVM
Koichi Sakata
 
Introduction to JIT Compiler in JVM
Koichi Sakata
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
 
Introduction to GraalVM and Native Image
Koichi Sakata
 
Introduction to GraalVM
Koichi Sakata
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Koichi Sakata
 
Great Ideas in GraalVM
Koichi Sakata
 
Graal in GraalVM - A New JIT Compiler
Koichi Sakata
 
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
Koichi Sakata
 
from Java EE to Jakarta EE
Koichi Sakata
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
KANJAVA PARTY 2017 前説
Koichi Sakata
 
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
Koichi Sakata
 
“Purikura” culture in Japan and our web application architecture
Koichi Sakata
 
デブサミ2017 Javaコミュニティ作ったら人生変わった
Koichi Sakata
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
 
日本からJavaOneに行こう!
Koichi Sakata
 
Seasar2で作った俺たちのサービスの今
Koichi Sakata
 
How Scala code is expressed in the JVM
Koichi Sakata
 

Recently uploaded (9)

PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
Ad

Java release cadence has been changed and about Project Amber