SlideShare a Scribd company logo
Copyright©2018 NTT corp. All Rights Reserved.
Java 10でぼくたちの生活は
どうかわるの?
2018年3月26日
NTT OSSセンタ 久保田 祐史
2Copyright©2018 NTT corp. All Rights Reserved.
•2018/3/20 リリース予定!
•前回から半年後
•12件の新機能
Java 10
3Copyright©2018 NTT corp. All Rights Reserved.
•メリット
•開発が活発化し便利な機能がどんど
ん入る
•例: Docker対応、あれば便利なAPI
•「あれば便利」が3年後はつらかった
•デメリット
•非互換性対応などのアップデート対
応コストが高くなる
リリースサイクル高速化
e.g.) String::repeat
4Copyright©2018 NTT corp. All Rights Reserved.
•新機能
•JEP(Java Enhancement Proposal)を見る
• openjdk.java.net/projects/jdk/10/#Features
•APIの変更
•JSR(Java Specification Request)の最終仕様
書(Specification)を見る
• cr.openjdk.java.net/~iris/se/10/latestSpec/
•非互換性
•リリースノートを見る
•バグDBからも確認が可能
• https://gist.github.com/ykubota/3afcfdac5b
252bd31ae8c14b54b5d32f
Java 10の情報収集
5Copyright©2018 NTT corp. All Rights Reserved.
• JEP 286: Local-Variable Type Inference
• ローカル変数の型推論「var」の導入
Java 10の主な嬉しい新機能
6Copyright©2018 NTT corp. All Rights Reserved.
JEP 286: Local-Variable Type Inference
URL url = new URL("http://java.net");
URLConnection conn = url.openConnection();
Scanner scanner =
new Scanner(conn.getInputStream());
List<String> list = new ArrayList<String>();
Stream<String> stream = list.stream();
7Copyright©2018 NTT corp. All Rights Reserved.
var url = new URL("http://java.net");
var conn = url.openConnection();
var scanner =
new Scanner(conn.getInputStream());
var list = new ArrayList<String>();
var stream = list.stream();
JEP 286: Local-Variable Type Inference
8Copyright©2018 NTT corp. All Rights Reserved.
• JEP 286: Local-Variable Type Inference
• ローカル変数の型推論「var」の導入
• JEP 310: Application Class-Data Sharing
• JVM プロセス間でメタデータやクラス情報を
共有する仕組み
• 多数のプロセスを立ち上げるケースでのメモリ
節約と起動時間の短縮が見込める
• Oracle JDK商用機能移行の第一弾
Java 10の主な嬉しい新機能
9Copyright©2018 NTT corp. All Rights Reserved.
• AppCDS (Application Class-Data Sharing)
• プロセス間でメタデータやクラス情報を共有する仕組
• Resource Management
• プロセス間でメモリやスレッドプールを共有する仕組
• Java Flight Recorder(Flight Recorder)
• JDKに組み込まれた低オーバヘッドのランタイム情報
プロファイリング、イベント収集フレームワーク
• 本日(3/15)の朝にプロポーサルが出された
• Java Mission Control(JDK Mission Control)
• Java Flight Recorderによって収集されたデータを効
率的に分析するためのツール・セット
• 先日(3/14)、コミュニティにてオープンソース化提案
に向けた議論が呼びかけられた
Oracle JDKの商用機能
10Copyright©2018 NTT corp. All Rights Reserved.
• JEP 286: Local-Variable Type Inference
• ローカル変数の型推論「var」の導入
• JEP 310: Application Class-Data Sharing
• JVM プロセス間でメタデータやクラス情報を
共有する仕組み
• 多数のプロセスを立ち上げるケースでのメモリ
節約と起動時間の短縮が見込める
• Oracle JDK商用機能移行の第一弾
• JEP 307: Parallel Full GC for G1
• シングルスレッド実行であったG1 GCのFull
GCが並列化
Java 10の主な嬉しい新機能
11Copyright©2018 NTT corp. All Rights Reserved.
•APIの変更(※調査中の値です。件=bugチケットの数)
•追加2件以上
•非推奨化3件以上(非推奨化中止1件)
•削除6件以上
•APIの削除
•Java 9よりDeprecatedアノテーション
が強化され削除フラグが追加された
•@Deprecated(forRemoval=true)
•次バージョン以降に削除される
Java 10の非互換性チラ見
jdeprscan ツールを使おう
12Copyright©2018 NTT corp. All Rights Reserved.
•コンテナを認識せずホストのCPU数とメモリ
を基に設定や動作が行われていた問題を修正
• -XX:+UseContainerSupport (デフォルト有効)
• cpu sets, cpu shares, cpu quotasを基に設定
• -XX:ActiveProcessorCount=<count> で上書可
• cgroup filesystemの memory_limit を基に設定
•ヒープに使用するシステムメモリ量を柔軟化
• -XX:{Initial,Max,Min}RAMPercentage
• -XX:{Max,MIN}RAMFraction より便利
•ホストからコンテナ上のプロセスにアタッチ
できるように改善
Dockerコンテナに関する改善
13Copyright©2018 NTT corp. All Rights Reserved.
•Add
• java.util.Optional.orElseThrow()
• java.util.Optional::get() からの置換推奨
• java.util.{List,Set,Map}::copyOf
• 引数のコレクションが変更可能な場合はコピーし
て変更不可能なコレクションを返す。変更不可能
な場合は、そのままリファレンスを返すメソッド
• 変更不可能かどうかの確認メソッドや変更不可能
なコレクション作成を自前でやっていた場合はこ
れに置換推奨
API
14Copyright©2018 NTT corp. All Rights Reserved.
•Remove
• forRemoval=trueのAPIが消えた
• JDK内部Swing LookAndFeelsインスタンス生成API
• javax.swing.UIManager.setLookAndFeel(…)
• com.sun.security.auth.*の非推奨クラスを削除
• java.lang.SecurityManager::checkPermissionに
置換可能な非推奨クラスやフィールドを削除
• JDK 1.1から非推奨な国際化メカニズムの一部を
削除
• java.lang.Runtime::getLocalized{In,Out}putStream
• その他、JavaFX関係のAPIが一部削除
API
15Copyright©2018 NTT corp. All Rights Reserved.
•Add
• javadocに以下の追加拡張が行われた
• サマリアノテーション(@summary)
• ヘッダフッタ指定(-top, -bottom)
• オーバライドメソッド書式指定(--override-methods)
• 複数スタイルシート利用サポート
• Remove
• policytool
• javah (javac -h で代用可能)
• JDK 6-8の標準ドックレット(doclet)
• javadoc API(com.sun.javadoc)は非推奨だが存続
Tool
16Copyright©2018 NTT corp. All Rights Reserved.
•Remove
• -Xoss, -Xsqnopause, -Xoptimize,
-Xboudthreads, -Xusealtsigs
• -Xprof (FlatProfiler)
• -XX:+Trace{Young,Old}GenTime
• -Xlog:gc+heap+exit=debug に置き換わった
• -d32, -d64
• Change
• -XX:BiasedLockingStartupDelay が4000から0に
• 計算機が向上し、遅延を有効にしてVMのオーバーヘッ
ドが発生するよりは無効にした方が性能が良くなった
Option
17Copyright©2018 NTT corp. All Rights Reserved.
•盛り上がる Swing/AWT
• Windows 8以降のキーボードがないモバイル環境な
どでテキストコンポーネントにフォーカスを移した場
合、OSのソフトウェアキーボードが自動で出るよう
になった
その他
18Copyright©2018 NTT corp. All Rights Reserved.
•JShellの起動が早くなった
• コンパイラインスタンスを都度立ち上げていたので、
大量の snippet と共に起動しようとすると遅かった
• krb5 1.15 追随
• includedir <DIRNAME> で指定したディレクトリ
の .conf で終わるファイルも読むようになった
• JNLP が IE 11 on Windows 10 で動かない
• Windows 10 Creators Update適用後からJNLPリンクをクリ
ックしてもJava Web Startアプリケーションが立ち上がらな
くなった
• Oracle 社の発表通り、Java 11以降は Java Web Start が
Oracle JDKに含まれなくなる
• OpenJDK には元から含まれていない
その他

More Related Content

PDF
Unified JVM Logging
PPTX
java.lang.OutOfMemoryError #渋谷java
PPTX
Java トラブル解析支援ツール HeapStats のご紹介
PPTX
Java 9 and Future #jjug
PDF
Prepare for Java 9 #jjug
PPTX
Project Jigsaw #kanjava
PDF
OpenJDK コミュニティに参加してみよう #jjug
PPTX
Jdk9で変更になる(かも知れない)jvmオプションの標準設定
Unified JVM Logging
java.lang.OutOfMemoryError #渋谷java
Java トラブル解析支援ツール HeapStats のご紹介
Java 9 and Future #jjug
Prepare for Java 9 #jjug
Project Jigsaw #kanjava
OpenJDK コミュニティに参加してみよう #jjug
Jdk9で変更になる(かも知れない)jvmオプションの標準設定

What's hot (20)

PDF
HeapStats: Introduction and Technical Preview
PDF
Migration Guide from Java 8 to Java 11 #jjug
PDF
楽して JVM を学びたい #jjug
PDF
JDK9 新機能 (日本語&ショートバージョン) #jjug
PDF
Head toward Java 16 (Night Seminar Edition)
PDF
OpenJDK トラブルシューティング #javacasual
PDF
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
PPTX
jcmd をさわってみよう
PPTX
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
PPTX
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
PPTX
Guide to GraalVM (JJUG CCC 2019 Fall)
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
PPTX
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
PDF
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
PPTX
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
PDF
EnrootとPyxisで快適コンテナ生活
PPTX
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
PDF
PPTX
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
PDF
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
HeapStats: Introduction and Technical Preview
Migration Guide from Java 8 to Java 11 #jjug
楽して JVM を学びたい #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
Head toward Java 16 (Night Seminar Edition)
OpenJDK トラブルシューティング #javacasual
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
jcmd をさわってみよう
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Guide to GraalVM (JJUG CCC 2019 Fall)
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
EnrootとPyxisで快適コンテナ生活
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Ad

Similar to Java 10でぼくたちの生活はどう変わるの? (20)

PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
PDF
Oracle code one 2018 報告会概要
PDF
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
PDF
FPGAによる大規模データ処理の高速化
PDF
Kubernetes Cluster Adminやってました #con_rider
PDF
Autonomous を支える技術、Oracle Database 18c デモンストレーション
PPTX
Java Day Tokyo 2014 まとめ (chen)
PDF
Google BigQuery クエリの処理の流れ - #bq_sushi
PDF
10
PDF
コンテナ環境でJavaイメージを小さくする方法!
PDF
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PPTX
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
PDF
JDK:新しいリリースモデル解説 @ 岡山・広島
PDF
今秋リリース予定のPostgreSQL11を徹底解説
PDF
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
PDF
JDK: 新しいリリースモデル解説
PPTX
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
PDF
JDK: 新しいリリースモデル解説(ver.2.0)
JavaOne 2016 Java SE Feedback #jjug #j1jp
Oracle code one 2018 報告会概要
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
FPGAによる大規模データ処理の高速化
Kubernetes Cluster Adminやってました #con_rider
Autonomous を支える技術、Oracle Database 18c デモンストレーション
Java Day Tokyo 2014 まとめ (chen)
Google BigQuery クエリの処理の流れ - #bq_sushi
10
コンテナ環境でJavaイメージを小さくする方法!
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JDK:新しいリリースモデル解説 @ 岡山・広島
今秋リリース予定のPostgreSQL11を徹底解説
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
JDK: 新しいリリースモデル解説
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
JDK: 新しいリリースモデル解説(ver.2.0)
Ad

More from Yuji Kubota (15)

PDF
Head toward Java 15 and Java 16
PDF
Head toward Java 14 and Java 15 #LINE_DM
PDF
Head toward Java 14 and Java 15
PDF
オンライン会議と音声認識
PDF
Head toward Java 13 and Java 14 #jjug
PDF
Catch up Java 12 and Java 13
PDF
Introduction to Java 11: Support and JVM Features #jjug
PPTX
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
PDF
jcmd #javacasual
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
PDF
HeapStats @ Seasar Conference 2015 LT
PDF
JDK9 Features (Summary, 31/Jul/2015) #JJUG
PDF
JVM のいろはにほ #javajo
PDF
HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring...
PDF
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
Head toward Java 15 and Java 16
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15
オンライン会議と音声認識
Head toward Java 13 and Java 14 #jjug
Catch up Java 12 and Java 13
Introduction to Java 11: Support and JVM Features #jjug
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
jcmd #javacasual
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
HeapStats @ Seasar Conference 2015 LT
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JVM のいろはにほ #javajo
HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring...
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp

Java 10でぼくたちの生活はどう変わるの?

  • 1. Copyright©2018 NTT corp. All Rights Reserved. Java 10でぼくたちの生活は どうかわるの? 2018年3月26日 NTT OSSセンタ 久保田 祐史
  • 2. 2Copyright©2018 NTT corp. All Rights Reserved. •2018/3/20 リリース予定! •前回から半年後 •12件の新機能 Java 10
  • 3. 3Copyright©2018 NTT corp. All Rights Reserved. •メリット •開発が活発化し便利な機能がどんど ん入る •例: Docker対応、あれば便利なAPI •「あれば便利」が3年後はつらかった •デメリット •非互換性対応などのアップデート対 応コストが高くなる リリースサイクル高速化 e.g.) String::repeat
  • 4. 4Copyright©2018 NTT corp. All Rights Reserved. •新機能 •JEP(Java Enhancement Proposal)を見る • openjdk.java.net/projects/jdk/10/#Features •APIの変更 •JSR(Java Specification Request)の最終仕様 書(Specification)を見る • cr.openjdk.java.net/~iris/se/10/latestSpec/ •非互換性 •リリースノートを見る •バグDBからも確認が可能 • https://gist.github.com/ykubota/3afcfdac5b 252bd31ae8c14b54b5d32f Java 10の情報収集
  • 5. 5Copyright©2018 NTT corp. All Rights Reserved. • JEP 286: Local-Variable Type Inference • ローカル変数の型推論「var」の導入 Java 10の主な嬉しい新機能
  • 6. 6Copyright©2018 NTT corp. All Rights Reserved. JEP 286: Local-Variable Type Inference URL url = new URL("http://java.net"); URLConnection conn = url.openConnection(); Scanner scanner = new Scanner(conn.getInputStream()); List<String> list = new ArrayList<String>(); Stream<String> stream = list.stream();
  • 7. 7Copyright©2018 NTT corp. All Rights Reserved. var url = new URL("http://java.net"); var conn = url.openConnection(); var scanner = new Scanner(conn.getInputStream()); var list = new ArrayList<String>(); var stream = list.stream(); JEP 286: Local-Variable Type Inference
  • 8. 8Copyright©2018 NTT corp. All Rights Reserved. • JEP 286: Local-Variable Type Inference • ローカル変数の型推論「var」の導入 • JEP 310: Application Class-Data Sharing • JVM プロセス間でメタデータやクラス情報を 共有する仕組み • 多数のプロセスを立ち上げるケースでのメモリ 節約と起動時間の短縮が見込める • Oracle JDK商用機能移行の第一弾 Java 10の主な嬉しい新機能
  • 9. 9Copyright©2018 NTT corp. All Rights Reserved. • AppCDS (Application Class-Data Sharing) • プロセス間でメタデータやクラス情報を共有する仕組 • Resource Management • プロセス間でメモリやスレッドプールを共有する仕組 • Java Flight Recorder(Flight Recorder) • JDKに組み込まれた低オーバヘッドのランタイム情報 プロファイリング、イベント収集フレームワーク • 本日(3/15)の朝にプロポーサルが出された • Java Mission Control(JDK Mission Control) • Java Flight Recorderによって収集されたデータを効 率的に分析するためのツール・セット • 先日(3/14)、コミュニティにてオープンソース化提案 に向けた議論が呼びかけられた Oracle JDKの商用機能
  • 10. 10Copyright©2018 NTT corp. All Rights Reserved. • JEP 286: Local-Variable Type Inference • ローカル変数の型推論「var」の導入 • JEP 310: Application Class-Data Sharing • JVM プロセス間でメタデータやクラス情報を 共有する仕組み • 多数のプロセスを立ち上げるケースでのメモリ 節約と起動時間の短縮が見込める • Oracle JDK商用機能移行の第一弾 • JEP 307: Parallel Full GC for G1 • シングルスレッド実行であったG1 GCのFull GCが並列化 Java 10の主な嬉しい新機能
  • 11. 11Copyright©2018 NTT corp. All Rights Reserved. •APIの変更(※調査中の値です。件=bugチケットの数) •追加2件以上 •非推奨化3件以上(非推奨化中止1件) •削除6件以上 •APIの削除 •Java 9よりDeprecatedアノテーション が強化され削除フラグが追加された •@Deprecated(forRemoval=true) •次バージョン以降に削除される Java 10の非互換性チラ見 jdeprscan ツールを使おう
  • 12. 12Copyright©2018 NTT corp. All Rights Reserved. •コンテナを認識せずホストのCPU数とメモリ を基に設定や動作が行われていた問題を修正 • -XX:+UseContainerSupport (デフォルト有効) • cpu sets, cpu shares, cpu quotasを基に設定 • -XX:ActiveProcessorCount=<count> で上書可 • cgroup filesystemの memory_limit を基に設定 •ヒープに使用するシステムメモリ量を柔軟化 • -XX:{Initial,Max,Min}RAMPercentage • -XX:{Max,MIN}RAMFraction より便利 •ホストからコンテナ上のプロセスにアタッチ できるように改善 Dockerコンテナに関する改善
  • 13. 13Copyright©2018 NTT corp. All Rights Reserved. •Add • java.util.Optional.orElseThrow() • java.util.Optional::get() からの置換推奨 • java.util.{List,Set,Map}::copyOf • 引数のコレクションが変更可能な場合はコピーし て変更不可能なコレクションを返す。変更不可能 な場合は、そのままリファレンスを返すメソッド • 変更不可能かどうかの確認メソッドや変更不可能 なコレクション作成を自前でやっていた場合はこ れに置換推奨 API
  • 14. 14Copyright©2018 NTT corp. All Rights Reserved. •Remove • forRemoval=trueのAPIが消えた • JDK内部Swing LookAndFeelsインスタンス生成API • javax.swing.UIManager.setLookAndFeel(…) • com.sun.security.auth.*の非推奨クラスを削除 • java.lang.SecurityManager::checkPermissionに 置換可能な非推奨クラスやフィールドを削除 • JDK 1.1から非推奨な国際化メカニズムの一部を 削除 • java.lang.Runtime::getLocalized{In,Out}putStream • その他、JavaFX関係のAPIが一部削除 API
  • 15. 15Copyright©2018 NTT corp. All Rights Reserved. •Add • javadocに以下の追加拡張が行われた • サマリアノテーション(@summary) • ヘッダフッタ指定(-top, -bottom) • オーバライドメソッド書式指定(--override-methods) • 複数スタイルシート利用サポート • Remove • policytool • javah (javac -h で代用可能) • JDK 6-8の標準ドックレット(doclet) • javadoc API(com.sun.javadoc)は非推奨だが存続 Tool
  • 16. 16Copyright©2018 NTT corp. All Rights Reserved. •Remove • -Xoss, -Xsqnopause, -Xoptimize, -Xboudthreads, -Xusealtsigs • -Xprof (FlatProfiler) • -XX:+Trace{Young,Old}GenTime • -Xlog:gc+heap+exit=debug に置き換わった • -d32, -d64 • Change • -XX:BiasedLockingStartupDelay が4000から0に • 計算機が向上し、遅延を有効にしてVMのオーバーヘッ ドが発生するよりは無効にした方が性能が良くなった Option
  • 17. 17Copyright©2018 NTT corp. All Rights Reserved. •盛り上がる Swing/AWT • Windows 8以降のキーボードがないモバイル環境な どでテキストコンポーネントにフォーカスを移した場 合、OSのソフトウェアキーボードが自動で出るよう になった その他
  • 18. 18Copyright©2018 NTT corp. All Rights Reserved. •JShellの起動が早くなった • コンパイラインスタンスを都度立ち上げていたので、 大量の snippet と共に起動しようとすると遅かった • krb5 1.15 追随 • includedir <DIRNAME> で指定したディレクトリ の .conf で終わるファイルも読むようになった • JNLP が IE 11 on Windows 10 で動かない • Windows 10 Creators Update適用後からJNLPリンクをクリ ックしてもJava Web Startアプリケーションが立ち上がらな くなった • Oracle 社の発表通り、Java 11以降は Java Web Start が Oracle JDKに含まれなくなる • OpenJDK には元から含まれていない その他