Prepare for Java 9 #jjug

196 views

Published on

Prepare for Java 9 in Japanese

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
196
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×