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.

Prepare for Java 9 #jjug

14,362 views

Published on

Prepare for Java 9 in Japanese

Published in: Technology
  • Be the first to comment

Prepare for Java 9 #jjug

  1. 1. Prepare for Java 9 Java 9 備え う KUBOTA Yuji @sugarlife kubota.yuji@gmail.com NTT OSS Center 2016/Dec/03 Copyright©2016 NTT corporation
  2. 2. 2 •大 新機能 • 入 背景 解決 課題 •コ 影響 (可能性 )あ 変更≒非互換性 • 変更 • 非推奨化 •削除 / 廃 • 内部処理変更 / 様化 い い処理 変更 Prepare for Java 9 Copyright©2016 NTT corporation セ ョン 話
  3. 3. 3 • 日 話 Java 9 式 前 変わ 可能性 あ 注意点 Copyright©2016 NTT corporation
  4. 4. 4 • JavaOne2016 (9/18-22) • [O] Java 8 非推奨 ョン Java 9 動 い Perm 代表例 ! • JavaOne 報告会 東京 (10/15) • [私] (コ &動作確認 ) 通 使わ い う 注意 ! • JDK-8167446: Add back PermSize and MaxPermSize (10/19) 実例 1 Copyright©2016 NTT corporation 完全無視 手直 必要 変わ せ
  5. 5. 5 • JavaOne2016 (9/18-22) • [O] Java 8 非推奨 ョン Java 9 動 い Perm 代表例 ! • JavaOne 報告会 東京 (10/15) • [私] (コ &動作確認 ) 通 使わ い う 注意 ! • JDK-8167446: Add back PermSize and MaxPermSize (10/19) 実例 1 Copyright©2016 NTT corporation 完全無視 手直 必要 変わ せ
  6. 6. 6 • 表示 •JavaOne 2015: java -listmods •JavaOne 2016: java --list-modules • 以外 ョン FB け 変わ • •CMS GC 非推奨, AOT Compiler, … 実例 2 Copyright©2016 NTT corporation Feature Complete (2016/5/26) 何
  7. 7. 7 •発表当日 深夜-朝 新 Java 9 入 新機 能 (JEP) (少 く 2 ) 追加 • JEP 11: Incubator Modules •JEP 299: Reorganize Documentation •大 新機能 / 非互換性 内 容 い 触 せ 実例 3 Copyright©2016 NTT corporation 直前 キ
  8. 8. 8 Disclaimer: who I am Copyright©2016 NTT corporation 発表時 自己紹 あ せ 本資 料 人 書い い 質問 Twitter 等 う ! KUBOTA Yuji (@sugarlife), hard-of-hearing kubota.yuji@gmail.com OpenJDK Technical Support Engineer in NTT OpenJDK Author (ykubota) IcedTea Committer
  9. 9. 9 •新機能 •概要 • Project Jigsaw •Project Kulla •非互換性 • ン 周 • API 周 • 周 Agenda Copyright©2016 NTT corporation
  10. 10. 10 Java 9 新機能 Copyright©2016 NTT corporation • 概要 • Project Jigsaw • Project Kulla
  11. 11. 11 •GA release schedule (ML 投票 決定) • 2017/7/27 ( ← 2017/3/23 ← 2016/9/23 ) •JEP: 87 89 個 (openjdk.java.net/projects/jdk9) • 機能 ( 様策定 参照実装) •JSR 379: Java SE 9 Release Contents •JCP 様承認 概要 Copyright©2016 NTT corporation 様策定 JCP 役目 , JEP ML 策定
  12. 12. 12 JEP: Java Enhancement Proposals Copyright©2016 NTT corporation JEP 追う 入 機能 あ 解 openjdk.java.net/jeps/0
  13. 13. 13 Project Jigsaw Copyright©2016 NTT corporation
  14. 14. 14 •JAR HELL •標準 Project Jigsaw Copyright©2016 NTT corporation Project Jigsaw 解決 う い 課題 い
  15. 15. 15 •JAR HELL • 依 性 複雑怪奇 •標準 • 巨大 分割 可 Project Jigsaw Copyright©2016 NTT corporation Project Jigsaw 解決 う い 課題 い
  16. 16. 16 •紛失 ? •コン 発生? •内部 API 安全 変更 ? 依 性 複雑怪奇 Copyright©2016 NTT corporation 依 性 複雑怪奇 何 問題
  17. 17. 17 •紛失 ? •コン 発生? →依 性 定義 い 問題 •内部 API 安全 変更 ? →公開制限 定義 い 問題 依 性 複雑怪奇 Copyright©2016 NTT corporation 依 性 複雑怪奇 何 問題
  18. 18. 18 •紛失 ? •コン 発生? →依 性 定義 い 問題 •内部 API 安全 変更 ? →公開制限 定義 い 問題 •解決策: Module 入 依 性 複雑怪奇 Copyright©2016 NTT corporation 依 性 複雑怪奇 何 問題
  19. 19. 19 Module Copyright©2016 NTT corporation Module コン com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR
  20. 20. 20 Module Copyright©2016 NTT corporation 明 一 JAR com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR
  21. 21. 21 Module Copyright©2016 NTT corporation module-info.java 定義 JAR com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR module-info.java
  22. 22. 22 Module Copyright©2016 NTT corporation 置く JAR com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR module-info.java
  23. 23. 23 Module Copyright©2016 NTT corporation 定義 module com.foo.bar { } JAR com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR module-info.java
  24. 24. 24 Module Copyright©2016 NTT corporation 依 性 定義方法 JAR module com.foo.bar { //依 requires com.foo.baz; requires java.sql; } com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR module-info.java 依 性
  25. 25. 25 Module Copyright©2016 NTT corporation 公開制限 定義方法 JAR module com.foo.bar { //依 requires com.foo.baz; requires java.sql; //公開 to 公開先 exports com.foo.bar.alpha; exports com.foo.bar.beta to com.foo.ok; } com.foo.bar.alpha.Alpha com.foo.bar.beta.Beta com.foo.internal.Internal : JAR module-info.java 依 性 公開制限
  26. 26. 26 Module Copyright©2016 NTT corporation com.foo.bar java.sql com.foo.internalcom.foo.bar.alpha java.logging com.foo.baz reads com.foo.app com.foo.bar.beta com.foo.ok : : : :図 う 依 性 公開制限 定義 module com.foo.bar { //依 requires com.foo.baz; requires java.sql; //公開 to 公開先 exports com.foo.bar.alpha; exports com.foo.bar.beta to com.foo.ok; } requires
  27. 27. 27 Standard library Copyright©2016 NTT corporation 標準 巨大 いう問題 化 解決 localhost /jdk9# ./bin/java --list-modules java.activation (file:///jdk9/modules/java.activation/) java.annotations.common (file:///jdk9/modules/java.annotations.common/) java.base (file:///jdk9/modules/java.base/) java.compact1 (file:///jdk9/modules/java.compact1/) java.compact2 (file:///jdk9/modules/java.compact2/) java.compact3 (file:///jdk9/modules/java.compact3/) java.compiler (file:///jdk9/modules/java.compiler/) java.corba (file:///jdk9/modules/java.corba/) :
  28. 28. 28 Standard library Copyright©2016 NTT corporation 標準 け 間 依 関係
  29. 29. 29 Standard library Copyright©2016 NTT corporation jdeps コ ン 依 い 確認 localhost /jdk9# ./bin/jdeps /tmp/heapstats-analyzer.jar heapstats-analyzer.jar -> java.base heapstats-analyzer.jar -> java.datatransfer heapstats-analyzer.jar -> java.desktop heapstats-analyzer.jar -> java.logging heapstats-analyzer.jar -> java.management heapstats-analyzer.jar -> java.rmi heapstats-analyzer.jar -> not found jp.co.ntt.oss.heapstats -> java.io java.base jp.co.ntt.oss.heapstats -> java.lang java.base jp.co.ntt.oss.heapstats -> java.lang.invoke java.base :
  30. 30. 30 Standard library Copyright©2016 NTT corporation 見当 い not found localhost /jdk9# ./bin/jdeps /tmp/heapstats-analyzer.jar heapstats-analyzer.jar -> java.base heapstats-analyzer.jar -> java.datatransfer heapstats-analyzer.jar -> java.desktop heapstats-analyzer.jar -> java.logging heapstats-analyzer.jar -> java.management heapstats-analyzer.jar -> java.rmi heapstats-analyzer.jar -> not found jp.co.ntt.oss.heapstats -> java.io java.base jp.co.ntt.oss.heapstats -> java.lang java.base jp.co.ntt.oss.heapstats -> java.lang.invoke java.base : OpenJDK JavaFX 含 い い not found jp.co.ntt.oss.heapstats -> javafx.application not found jp.co.ntt.oss.heapstats -> javafx.collections not found
  31. 31. 31 Standard library Copyright©2016 NTT corporation 標準 化 一 localhost /jdk9# ./bin/jdeps /tmp/heapstats-analyzer.jar heapstats-analyzer.jar -> java.base heapstats-analyzer.jar -> java.datatransfer heapstats-analyzer.jar -> java.desktop heapstats-analyzer.jar -> java.logging heapstats-analyzer.jar -> java.management heapstats-analyzer.jar -> java.rmi heapstats-analyzer.jar -> not found jp.co.ntt.oss.heapstats -> java.io java.base jp.co.ntt.oss.heapstats -> java.lang java.base jp.co.ntt.oss.heapstats -> java.lang.invoke java.base : OpenJDK JavaFX 含 い い not found jp.co.ntt.oss.heapstats -> javafx.application not found jp.co.ntt.oss.heapstats -> javafx.collections not found jlink コ ン 必要最低限 構 成 実行可能 java 作成
  32. 32. 32 •何 嬉 い • 足 /コン 調査 簡易化 • 柔軟 セ 制限 • 標準 縮 圧縮 •備え ? • ビ 利用 対応 学 う Project Jigsaw Copyright©2016 NTT corporation ョン 変わ 可能性 あ う暫く
  33. 33. 33 Project Kulla (JShell) Copyright©2016 NTT corporation
  34. 34. 34 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation /jdk9/bin# ./jshell | Welcome to JShell -- Version 9-internal | For an introduction type: /help intro jshell>
  35. 35. 35 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation /jdk9/bin# ./jshell | Welcome to JShell -- Version 9-internal | For an introduction type: /help intro jshell> import java.time.* jshell>
  36. 36. 36 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation /jdk9/bin# ./jshell | Welcome to JShell -- Version 9-internal | For an introduction type: /help intro jshell> import java.time.* jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> }
  37. 37. 37 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation /jdk9/bin# ./jshell | Welcome to JShell -- Version 9-internal | For an introduction type: /help intro jshell> import java.time.* jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9
  38. 38. 38 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9 jshell>
  39. 39. 39 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9 jshell> new Java9()
  40. 40. 40 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9 jshell> new Java9() $3 ==> Java9@56235b8e jshell>
  41. 41. 41 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9 jshell> new Java9() $3 ==> Java9@56235b8e jshell> $3.releaseDate()
  42. 42. 42 •REPL (Read-eval-print loop) for Java Project Kulla (JShell) Copyright©2016 NTT corporation jshell> public class Java9 { ...> public void releaseDate() { ...> LocalDateTime d = LocalDateTime.of(2016,9,23,0,0); ...> System.out.println(d.plusMonths(6+4).plusDays(4)); ...> } ...> } | created class Java9 jshell> new Java9() $3 ==> Java9@56235b8e jshell> $3.releaseDate() 2017-07-27T00:00
  43. 43. 43 •何 嬉 い • く API 試せ •教育用 役立 • CLI framework • https://github.com/YaSuenag/jmxclient •備え ? • 簡単 検討 CLI 利用 Project Kulla (JShell) Copyright©2016 NTT corporation jshell 色々 う ?
  44. 44. 44 新機能 Copyright©2016 NTT corporation
  45. 45. 45 •JavaDoc.Next •HTML 5 •Doclint, Doclet API 改善 •検索機能 追加 •JDK release • javac --release コン •Multi-release jar files (META-INF/version/{9,10,…}) 新機能 Copyright©2016 NTT corporation 二 Project 以外 新機能 あ
  46. 46. 46 •JavaDoc.Next •HTML 5 •Doclint, Doclet API 改善 •検索機能 追加 •JDK release • javac --release コン •Multi-release jar files (META-INF/version/{9,10,…}) 新機能 Copyright©2016 NTT corporation 二 Project 以外 新機能 あ javac --release N = javac -target N -source N . -bootclasspath=/path/to/N/rt.jar
  47. 47. 47 •HTTP 2.0 / The Flow API / … •性能改善 • Re-engineering javac (Tiered Attribution) • “String” + “String” (invokedynamic 利用) •Stream / Collection 改善 • 匿 ン 演算子 • Static 追加 ({List,Set,Map}#of) 新機能 Copyright©2016 NTT corporation 新機能 改善 く一部 紹
  48. 48. 48 非互換性 Copyright©2016 NTT corporation • ン 変更 • API 周 変更 • 周 変更
  49. 49. 49 OpenJDK Developers’ Guide •Don’t break binary compatibility (言語 様) •Avoid introducing source incompatibilities •Manage behavioral compatibility changes http://cr.openjdk.java.net/~darcy/OpenJdkDevGuide/ 互換性 Copyright©2016 NTT corporation Binary > Source > Behavioral
  50. 50. 50 •JEP 227: Enhanced Deprecation •@Deprecated • 将来削除 (forRemoval) • ョン 非推奨 (since) •jdeprscan •非推奨 API 利用 @Deprecated Copyright©2016 NTT corporation 消え 消え 詐欺
  51. 51. 51 ン 変更 Copyright©2016 NTT corporation JVM 挙動周
  52. 52. 52 •大半 内部 API セ 化(隠蔽) •JDK 9 コ ン ョン 回避 可能 •広く使わ い 物(Critical APIs) 代替 用 意 公開 •jdeps 使 影響あ 確認 推奨 • 特 Multi-Release JAR files (JEP 238) JEP 260: Encapsulate most internal APIs Copyright©2016 NTT corporation 特 利用 影響 け い 確認
  53. 53. 53 •Critical APIs (keep public) • sun.misc.Unsafe •sun.misc.{Signal,SignalHandler} • sun.misc.Cleaner •sun.reflect.Reflection::getCallerClass • sun.reflect.ReflectionFactory • 以外 削除(隠蔽) 例: sun.misc.Base64 JEP 260: Encapsulate most internal APIs Copyright©2016 NTT corporation Critical APIs JDK 10 以降 削除 可能性あ
  54. 54. 54 • 変更 以 組 廃 • Endorsed-standards override •Extension mechanism • -Xbootclasspath, -Xbootclasspath/p, -Dsun.boot.class.path 削除 • AppClassLoader URLClassLoader ン ン 無く ( 承 い)等 影響 Change class loaders mechanism in JEP 261: Module System Copyright©2016 NTT corporation Module 化 配置 推奨 いう流
  55. 55. 55 •-source / -target 3 世代前 サ •JDK 9 場合 1.6 1.5 drop •drop 前 ョン 非推奨 •JDK 9 場合 1.6 非推奨 警告 出 JEP 182: Policy for Retiring javac – source and –target options Copyright©2016 NTT corporation JDK 9 ビ JDK 5 動 人 居 い ?
  56. 56. 56 •-version: コ ン ン ョン削除 •-version く : 付く方 •JAR Manifest JRE-Version 削除 JEP 231: Remove Launch-Time JRE Version Selection Copyright©2016 NTT corporation 起動時 ョン指定 く
  57. 57. 57 •JDK 構造 変更 JEP 220: Modular Run-Time Images Copyright©2016 NTT corporation 等 決 打 込 影響
  58. 58. 58 •javac --release Multi-Release JAR • 自体 新機能 •前述 非互換性 合わせ ビ 多 大 影響 え • Java 9 ン ビ 最新 化 必要 JEP 247: Compile for Older Platform Versions JEP 238: Multi-Release JAR Files Copyright©2016 NTT corporation Maven:https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw
  59. 59. 59 •JDK 8 削除済 or 非推奨 ョン 使 場合 警告 セ 出 け (無視 起動 ) •JDK 9 殆 場合起動 く • JDK 8 非推奨 ョン 削除 • Perm 領域関係 残 無視 起動 Unrecognized VM options fail to start Copyright©2016 NTT corporation warning: ignoring option XXX; support was removed in 8.0
  60. 60. 60 •Property File UTF-8 利用可能 •ResourceBundle API UTF-8 込 •native2ascii 削除 •設定 込 ワ 工 夫 隠蔽 い 影響 現 う JEP 226: UTF-8 Property Files Copyright©2016 NTT corporation う く UTF-8 対応 思い 動作等 変更
  61. 61. 61 •1.8.0_101-b14 • 1.$MAJOR.0_$MINOR-b$BUILD •9.1.2+62 • $MAJOR.$MINOR.$SECURITY+$BUILD •java.version, java.specification.version •1.8 9 •version.split(“.”)[1] い … JEP 223: New Version String Scheme Copyright©2016 NTT corporation ョン表記 決 打 込 影響
  62. 62. 62 •従来 JVM 廃 ョン 変更 •-Xlog:[<selection>]:[<output>]:[<decorators>] •-Xlog:[出力内容]:[出力先]:[各行 装飾] JEP 158: Unified JVM Logging JEP 271: Unified GC Logging Copyright©2016 NTT corporation Parser 系 い い全滅
  63. 63. 63 •従来 JVM 廃 ョン 変更 •-Xlog:[<selection>]:[<output>]:[<decorators>] •-Xlog:[出力内容]:[出力先]:[各行 装飾] • -XX:+PrintGCDetails -Xloggc:gc.log.`date +%Y- %m-%d_%H-%M-%S` -XX:+PrintGCTimeStamps JEP 158: Unified JVM Logging JEP 271: Unified GC Logging Copyright©2016 NTT corporation Parser 系 い い全滅
  64. 64. 64 •従来 JVM 廃 ョン 変更 •-Xlog:[<selection>]:[<output>]:[<decorators>] •-Xlog:[出力内容]:[出力先]:[各行 装飾] • -XX:+PrintGCDetails -Xloggc:gc.log.`date +%Y- %m-%d_%H-%M-%S` -XX:+PrintGCTimeStamps • -Xlog:gc*=debug:gc.log.%t:time,level JEP 158: Unified JVM Logging JEP 271: Unified GC Logging Copyright©2016 NTT corporation Parser 系 い い全滅
  65. 65. 65 • 以 組合せ • DefNew + CMS / iCMS •ParNew + SerialOld / iCMS • CMS foreground(s) • -XX:+UseCMSCompactAtFullCollection • -XX:+CMSFullGCsBeforeCompaction • -XX:+UseCMSCollectionPassing JEP 214: Remove GC Combinations Deprecated in JDK 8 Copyright©2016 NTT corporation JDK 8 時点 非推奨 非サ
  66. 66. 66 • Parallel GC G1 GC •-XX:+UseParallel(Old)GC 従来通 •CMS GC 非推奨化 議論 ML 進 い (JEP 291) JEP 248: Make G1 the Default Garbage Collector Copyright©2016 NTT corporation 各 GC JJUG CCC {2014,2015} Fall 資料 参考
  67. 67. 67 •JEP 229: Create PKCS12 Keystores by Default •keystore type JKS PKCS12 変更 •JEP 288: Disable SHA-1 Certificates • X.509 証明書 ン SHA-1 署 利用 い 場合 注意 Improve encryption for security Copyright©2016 NTT corporation コ いう 利用 証明書 問題
  68. 68. 68 API 周 変更 Copyright©2016 NTT corporation Java API 削除 挙動変更
  69. 69. 69 •JEP 289: Deprecate the Applet API • java.applet.{AppletStub,Applet,AudioClip,Apple tContext} • javax.swing.JApplet •Fix insecure issues •Remove support for serialized applets (JDK-8074161) • No longer allow non-strict JNLP Parsing (JDK-8075605) Follow the evolution of WEB Copyright©2016 NTT corporation Web 動向(NPAPI) セキ 面 非推奨化 流
  70. 70. 70 • java.util.logging.LogManager #{add|remove}PropertyChangeListener • java.util.jar.Pack200.{Packer|Unpacker}# {add|remove}PropertyChangeListener • com.sun.security.auth.callback.DialogCal lbackHandle Remove deprecated APIs in JEP 162: Prepare for Modularization Copyright©2016 NTT corporation JDK 8 非推奨 い API 削除
  71. 71. 71 • Toolkit implementers (JDK-8037739) • java.awt.peer package • java.awt.dnd.peer package • Unsupported Apple APIs • com.apple.eawt, com.apple.eio (JEP 272) • com.apple.concurrent (JDK-8148187) • AppleScript scripting engine (JDK-8143404) • com.sun.codec.jpeg (JDK-8038838) Removed APIs Copyright©2016 NTT corporation 関係 多い
  72. 72. 72 •UnsupportedOperationException 返 • JDK-7059085 (非公開) •Java SE 1.2 時代 非推奨 •Thread.stop() 残 • いえ inconsistent state 留 せ 処理 危険 伴う 注意 Thread.stop(Throwable) throw UOE Copyright©2016 NTT corporation 前 ョン い
  73. 73. 73 • Arrays.asList(x).toArrays() returns Object[] (JDK-6260652) • 配列 ン(clone) 返 い • JDK 9 Object[] 返 Behavior changed API Copyright©2016 NTT corporation JEP 関係 い API 挙動変更
  74. 74. 74 • _ 1文 禁 (JDK-8061549) • 排除 い • JLS §15.27.1. Lambda Parameters (Java 8) Disallow _ as a one-character identifier by JEP 213: Milling Project Coin Copyright©2016 NTT corporation いい 前 授け う
  75. 75. 75 •String 化 一環 内部 (value) 型 char[] byte[] 変更 •1文 毎 2byte(UTF-16) 1byte 扱 え 1byte 以外 従来通 • 回避 内部 直接 け渡 意外 多い 注意 The value field of String is no longer char[] by JEP 254: Compact Strings Copyright©2016 NTT corporation 文 列 性能 永遠 課題
  76. 76. 76 •RMI HTTP proxy •RMI/JRMP HTTP tunneling 実装 削除 (JDK-8155978) The entire HTTP proxying mechanism of RMI deprecated in JDK 8 will be removed Copyright©2016 NTT corporation 前 ョン 非推奨化 削除 一環
  77. 77. 77 Deprecate com.sun.jarsigner package by JDK-8076535 Copyright©2016 NTT corporation jarsigner コ ン 自体 変更 •独自 JAR 署 方法 実装 •jarsigner コ ン -altsigner 利用 •低 且 利用者 居 い 非推奨
  78. 78. 78 周 変更 Copyright©2016 NTT corporation Serviceability tool
  79. 79. 79 Good bye hprof by JEP 240 Copyright©2016 NTT corporation [PR] heap profiler & visualizer HeapStats ! •hprof 提供 く • 元々 JVM TI BCI コ あ 非公式扱 い •コ HeapDump 機能 残 •HeapDump jcmd 等 代替 可能
  80. 80. 80 Good bye jhat by JEP 241 Copyright©2016 NTT corporation [PR] heap profiler & visualizer HeapStats ! •jhat 提供停 •hprof 様 コ 残 • experimental あ 利用 少 • Eclipse MAT 代用可能
  81. 81. 81 •native2ascii • JEP 226 UTF-8 利用可能 •VisualVM •JDK 梱 く 公式サ 得 必要 あ (blogs.oracle.com/nbprofiler) • https://blogs.oracle.com/java-platform- group/entry/visual_vm_in_jdk_9 Good bye tools Copyright©2016 NTT corporation [PR] heap profiler & visualizer HeapStats !
  82. 82. 82 JEP 228: Add More Diagnostic Commands Copyright©2016 NTT corporation Domain Num. Abstract PerfCounter 1 - Performance Counter ManagementAgent 4 +1 JMX agent Thread 1 - Thread dump GC 8 +2 -1 Heap / GC / Finalization VM 15 +8 Runtime info. (log/native mem/flag/etc.) Compiler 7 - JIT Compiler JVMTI 2 - JVMTI agent Removed GC.rotate_log to VM domain jcmd 機能 強化 (基本的 新機能)
  83. 83. 83 影響 あ う 変更 Copyright©2016 NTT corporation 影響度合い 掴 い • Windows 32 Client VM 廃 • Unicode CLDR (JEP 252) • -Djava.locale.providers=JRE,SPI 従来通 • JavaDB (Apache Derby) 廃 (JDK-8004716) • Derby 自体 Apache 開発 け い • StringBuilder::append 生成 コ 変更 (JEP 280) • invokedynamic 利用 JDK library function ぶ う • 新機能 紹 性能改善 コ 関わ う 処理 あ い 思わ …
  84. 84. 84 い @sugarlife kubota.yuji@gmail.com Copyright©2016 NTT corporation

×