Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java 9 and Future #jjug

3,693 views

Published on

JavaOne 2017 報告会 at Japan Java User Group

デモのコード:https://github.com/ykubota/jigsaw-sample_jp

イベントページ:https://jjug.doorkeeper.jp/events/66256
Stream: https://www.youtube.com/watch?v=XT2tIh9r6Eo

slideshareが自動的にPDFに変換するように仕様変更されていたため、ノート付きでアップロードができませんでした。お手数をおかけしますが、原稿(簡単ですが…)を読んでみたい方は筆者までTwitterでDMかメールなどでご連絡お願いします。

Published in: Technology
  • Be the first to comment

Java 9 and Future #jjug

  1. 1. Copyright©2017 NTT corp. All Rights Reserved. Java 9 and Future 2017年10月21日 NTT OSSセンタ 久保田 祐史
  2. 2. 2Copyright©2017 NTT corp. All Rights Reserved. •本セッション内容は公開されます • 資料はダウンロードできます。ざっくりです がノートに原稿も記載しています • https://www.slideshare.net/YujiKubota • 再アップロードできなくなったので一覧から… • デモに利用したコードは実行方法とあわせて 公開しています • github.com/ykubota/jigsaw-sample_jp • ぜひTwitterで #JJUG を付けて呟いて下さい • 難聴者の方などが理解する助けになります! 情報保障
  3. 3. 3Copyright©2017 NTT corp. All Rights Reserved. •KUBOTA Yuji (@sugarlife) • Java (OpenJDK) サポート担当 • OpenJDKバリバリ利用中 • OpenJDKコントリビュートしたり JavaOneやJJUGで喋ったり • WEB+DB v101で記事書きました •NTT OSSセンタ • NTTグループのOSS活用を支える部隊 • Kernel, PostgreSQL, Pacemaker, Tomcat, OpenJDK, and so on. • 各種コントリビューター揃えております Who I am
  4. 4. 4Copyright©2017 NTT corp. All Rights Reserved. •2017/9/21 リリース! Java 9
  5. 5. 5Copyright©2017 NTT corp. All Rights Reserved. •1ヵ月が経ちましたが… •プロダクションで使っている人 •手元で使ってみた人 •Java 9について調べてみた人 Java 9
  6. 6. 6Copyright©2017 NTT corp. All Rights Reserved. •Java 9の調べ方 •Java 9のメイン新機能を少し詳 しく •デモンストレーション •次のJavaをチラ見 •Java 18.3 今日お話しすること
  7. 7. 7Copyright©2017 NTT corp. All Rights Reserved. • Java Enhancement Proposal(JEP)を見る • http://openjdk.java.net/projects/jdk9/ • bugzillaで検索 (issuetype=JEP) 追加された機能の確認方法
  8. 8. 8Copyright©2017 NTT corp. All Rights Reserved. •Migration Guideを読む • https://docs.oracle.com/javase/9/migra te/toc.htm • メジャーバージョンリリース時にOracle社よ り提供されている • 基本的なマイグレーション手順や移行時に問 題となりそうな大きな非互換性が紹介されて いる 移行する際に注意するポイントは?
  9. 9. 9Copyright©2017 NTT corp. All Rights Reserved. 全体的な解説
  10. 10. 10Copyright©2017 NTT corp. All Rights Reserved. 全体的な解説
  11. 11. 11Copyright©2017 NTT corp. All Rights Reserved. • SpecificationやRelease Noteを読む • JSR 379(Java SE 9) API Specification Change Summary • bugzillaで検索 (labels=release-note) より細かく見る(サポートレベル)
  12. 12. 12Copyright©2017 NTT corp. All Rights Reserved. トラブルシュータは必須
  13. 13. 13Copyright©2017 NTT corp. All Rights Reserved. • モジュール化(Project Jigsaw) • 柔軟な可視性設定と依存性管理ができる • RPEL (JShell) • 待望のJavaインタプリタ • ライブラリ改善 • Collection 初期化、Stream機能拡張、等 • セキュリティ強化 • ALPN対応、DRBG追加、SHA-3対応 • 付属ツールの刷新(診断とコンパイル) • jcmd, jhsdb, jaot(AoT Compilation) • G1 GCやコンパイラなどの性能改善 メリットの一部
  14. 14. 14Copyright©2017 NTT corp. All Rights Reserved. • モジュール化(Project Jigsaw) • 柔軟な可視性設定と依存性管理ができる • RPEL (JShell) • 待望のJavaインタプリタ • ライブラリ改善 • Collection 初期化、Stream機能拡張、等 • セキュリティ強化 • ALPN対応、DRBG追加、SHA-3対応 • 付属ツールの刷新(診断とコンパイル) • jcmd, jhsdb, jaot(AoT Compilation) • G1 GCやコンパイラなどの性能改善 メイン新機能
  15. 15. 15Copyright©2017 NTT corp. All Rights Reserved. Demonstration
  16. 16. 16Copyright©2017 NTT corp. All Rights Reserved. • Java SE 18.3 (JSR 383) 次のJava
  17. 17. 17Copyright©2017 NTT corp. All Rights Reserved. • JDK Project • http://openjdk.java.net/projects/jdk/ どこで管理?
  18. 18. 18Copyright©2017 NTT corp. All Rights Reserved. スケジュールと機能
  19. 19. 19Copyright©2017 NTT corp. All Rights Reserved. • Java SE 18.3 (JSR 383) • JEP 286: Local-Variable Type Inference •Project Amber • Future • Project Panama • Project Valhalla • Project Loom (投票中) • Project Metropolis (投票中) •リポジトリやバイナリ(EA)は独立予定 • それぞれで試せる予定。JEP286はjdk10でも 新機能(予定)
  20. 20. 20Copyright©2017 NTT corp. All Rights Reserved. • JEP 286: Local-Variable Type Inference Project Amber URL url = new URL("http://java.net"); URLConnection conn = url.openConnection(); Scanner scanner = new Scanner(conn.getInputStream());
  21. 21. 21Copyright©2017 NTT corp. All Rights Reserved. • JEP 286: Local-Variable Type Inference Project Amber var url = new URL("http://java.net"); var conn = url.openConnection(); var scanner = new Scanner(conn.getInputStream());
  22. 22. 22Copyright©2017 NTT corp. All Rights Reserved. • JEP 305: Pattern matching Project Amber String formatted = "unknown"; if (obj instanceof Integer) { int i = (Integer) obj; formatted = String.format("int %d", i); } else if (obj instanceof Byte) { byte b = (Byte) input; formatted = String.format("byte %b", b); } else if (obj instanceof Long) { : } else formatted = String.format("Unknown %s", obj);
  23. 23. 23Copyright©2017 NTT corp. All Rights Reserved. • JEP 305: Pattern matching Project Amber String formatted; switch (obj) { case Integer i: formatted = String.format ("int %d", i); break; case Byte b: formatted = String.format("byte %b", b); break; case Long l: : default: formatted = String.format("Unknown %s", obj); }
  24. 24. 24Copyright©2017 NTT corp. All Rights Reserved. • JEP 305: Pattern matching Project Amber String formatted = switch (obj) { case Integer i -> String.format("int %d", i); case Byte b -> String.format("byte %d", b); case Long l -> String.format("long %d", l); : default -> String.format("Unknown %s", obj); };
  25. 25. 25Copyright©2017 NTT corp. All Rights Reserved. • JEP 301: Enhanced Enums Project Amber public enum JDKNumber { YEAR(18), FULL(18.3); public final Number version; JDKNumber(Number version) { this.version = version; } } float jdkversion = (float)JDKNumber.FULL.version;
  26. 26. 26Copyright©2017 NTT corp. All Rights Reserved. • JEP 301: Enhanced Enums Project Amber public enum JDKNumber<T extends Number> { YEAR<Integer>(18), FULL<Float>(18.3); public final T version; JDKNumber(T version) { this.version = version; } } float jdkversion = JDKNumber.FULL.version;
  27. 27. 27Copyright©2017 NTT corp. All Rights Reserved. • JEP 301: Enhanced Enums Project Amber public enum JDKNumber<T extends Number> { YEAR<Integer>(18), FULL<Float>(18.3); public final T version; JDKNumber(T version) { this.version = version; } } float jdkversion = JDKNumber.FULL.version; 他にも列挙型を改善予定
  28. 28. 28Copyright©2017 NTT corp. All Rights Reserved. • その他 • JEP 302 Lambda Leftovers • 使ってないパラメータの記述省エネ化、重複変数の利 用制限撤廃、メソッドのオーバーロード許容、etc • Other future JEPs • 情報 • Mailing List http://mail.openjdk.java.net/mailman/listinfo/ amber-dev • Project Page http://openjdk.java.net/projects/amber/ Project Amber
  29. 29. 29Copyright©2017 NTT corp. All Rights Reserved. •Question? •@sugarlife or #JJUG •kubota.yuji@gmail.com

×