Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

JDK9 新機能 (日本語&ショートバージョン) #jjug

24.290 visualizaciones

Publicado el

Shortener and Japanese translation version of http://www.slideshare.net/YujiKubota/jdk9-features-31jul2015-jjug .

Publicado en: Tecnología
  • Sé el primero en comentar

JDK9 新機能 (日本語&ショートバージョン) #jjug

  1. 1. JDK9 KUBOTA Yuji (@sugarlife) 日本語&ショートバージョン Java Japan User Group LT with b33r 10/Aug/2015
  2. 2. おやくそく •OpenJDK 準拠です •本スライドはサマリであり、GA が出るまでに一部変更になる場合 もあります。 •酔ってるので適当に話します :p •本スライドはサマリのサマリです •http://goo.gl/FFS9zL (やや詳細版) http://openjdk.java.net/projects/jdk9/ (31/Jul/2015)
  3. 3. Who am I •KUBOTA Yuji (@sugarlife) •icedtea committer (HeapStats) •JVM 芸人 •難聴者
  4. 4. What features will come? 102: Process API Updates 110: HTTP 2 Client 143: Improve Contended Locking 158: Unified JVM Logging 165: Compiler Control 193: Variable Handles 197: Segmented Code Cache 199: Smart Java Compilation, Phase Two 201: Modular Source Code 211: Elide Deprecation Warnings on Import Statements 212: Resolve Lint and Doclint Warnings 213: Milling Project Coin 214: Remove GC Combinations Deprecated in JDK 8 215: Tiered Attribution for javac 216: Process Import Statements Correctly 217: Annotations Pipeline 2.0 219: Datagram Transport Layer Security (DTLS) 220: Modular Run-Time Images 221: Simplified Doclet API 222: jshell: The Java Shell (Read-Eval-Print Loop) 223: New Version-String Scheme 224: HTML5 Javadoc 226: UTF-8 Property Files 227: Unicode 7.0 228: Add More Diagnostic Commands 229: Create PKCS12 Keystores by Default 230: Microbenchmark Suite 231: Remove Launch-Time JRE Version Selection 232: Improve Secure Application Performance 233: Generate Run-Time Compiler Tests Automatically 235: Test Class-File Attributes Generated by javac 236: Parser API for Nashorn 237: Linux/AArch64 Port 240: Remove the JVM TI hprof Agent 241: Remove the jhat Tool 243: Java-Level JVM Compiler Interface 244: TLS Application-Layer Protocol Negotiation Extension 245: Validate JVM Command-Line Flag Arguments 246: Leverage CPU Instructions for GHASH and RSA 247: Compile for Older Platform Versions 248: Make G1 the Default Garbage Collector 249: OCSP Stapling for TLS 250: Store Interned Strings in CDS Archives 251: Multi-Resolution Images 252: Use CLDR Locale Data by Default 253: Prepare JavaFX UI Controls & CSS APIs for Modularization 254: Compact Strings 255: Merge Selected Xerces 2.11.0 Updates into JAXP 256: BeanInfo Annotations 257: Update JavaFX/Media to Newer Version of GStreamer 258: HarfBuzz Font-Layout Engine
  5. 5. What features will come? 102: Process API Updates 110: HTTP 2 Client 143: Improve Contended Locking 158: Unified JVM Logging 165: Compiler Control 193: Variable Handles 197: Segmented Code Cache 199: Smart Java Compilation, Phase Two 201: Modular Source Code 211: Elide Deprecation Warnings on Import Statements 212: Resolve Lint and Doclint Warnings 213: Milling Project Coin 214: Remove GC Combinations Deprecated in JDK 8 215: Tiered Attribution for javac 216: Process Import Statements Correctly 217: Annotations Pipeline 2.0 219: Datagram Transport Layer Security (DTLS) 220: Modular Run-Time Images 221: Simplified Doclet API 222: jshell: The Java Shell (Read-Eval-Print Loop) 223: New Version-String Scheme 224: HTML5 Javadoc 226: UTF-8 Property Files 227: Unicode 7.0 228: Add More Diagnostic Commands 229: Create PKCS12 Keystores by Default 230: Microbenchmark Suite 231: Remove Launch-Time JRE Version Selection 232: Improve Secure Application Performance 233: Generate Run-Time Compiler Tests Automatically 235: Test Class-File Attributes Generated by javac 236: Parser API for Nashorn 237: Linux/AArch64 Port 240: Remove the JVM TI hprof Agent 241: Remove the jhat Tool 243: Java-Level JVM Compiler Interface 244: TLS Application-Layer Protocol Negotiation Extension 245: Validate JVM Command-Line Flag Arguments 246: Leverage CPU Instructions for GHASH and RSA 247: Compile for Older Platform Versions 248: Make G1 the Default Garbage Collector 249: OCSP Stapling for TLS 250: Store Interned Strings in CDS Archives 251: Multi-Resolution Images 252: Use CLDR Locale Data by Default 253: Prepare JavaFX UI Controls & CSS APIs for Modularization 254: Compact Strings 255: Merge Selected Xerces 2.11.0 Updates into JAXP 256: BeanInfo Annotations 257: Update JavaFX/Media to Newer Version of GStreamer 258: HarfBuzz Font-Layout Engine ( ゚д゚ )
  6. 6. ひとまとめ (1) •ダイエット or 最適化シリーズ •コード変更なしで JVM が速くな るシリーズ •143: Improve Contended Locking •197: Segmented Code Cache •254: Compact Strings •232: Improve Secure Application Performance •246: Leverage CPU Instructions for GHASH and RSA (intel x64/SPARC)
  7. 7. ひとまとめ (2) •Project Jigsaw •220: Modular Run-Time Images •モジュール化による XML 地獄や 依存性地獄からの脱却、等 •前準備 •201: Modular Source Code •253: Prepare JavaFX UI Controls & CSS APIs for Modularization
  8. 8. ひとまとめ (3) •javac 関係 • 199: Smart Java Compilation, Phase Two • 215: Tiered Attribution for javac • 216: Process Import Statements Correctly • 217: Annotations Pipeline 2.0 • 235: Test Class-File Attributes Generated by javac • 247: Compile for Older Platform Versions
  9. 9. 102: Process API Updates •プロセス情報を扱う API が実 はなかったので追加。 110: HTTP 2 Client •SPDYなどを含む HTTP/2 API を追加。
  10. 10. 158: Unified JVM Logging •今頃 JVM のログフォーマットやオ プションを統一しようぜという流れ •ログパーサ開発者は要注意 165: Compiler Control •コンパイラを詳細に制御したい 変態御用達ツール •c1・c2 それぞれに詳細設定可能 •しかも動作中のJVMにも設定可能
  11. 11. 193: Variable Handles •sun.misc.Unsafe 等が削除される可 能性があるので、代替方法の提案 その1
  12. 12. (おまけ) sun.misc.Unsafe 動向 • 6/15-16 に行われた JCP Executive Committee Meeting で隠蔽・削除 に向けた影響や代替方法などの話し合いが行われた • 元々 sun.* 等は Jigsaw(module化) 関係で処遇を決める必要があった • JCP Meeting の議題はここ、Unsafeに関する議事録はここ。 • この代替方法の最初のステップとして先の VarHandles が提案され、つ い最近(7月)に JDK9 に盛り込まれることが決まった • VarHandles Project 詳細 (JVM Language Summit 2014) http://www.oracle.com/technetwork/java/jvmls2014sandoz-2265216.pdf • 今のところは • sun.misc.Unsafe などが deprecated / removed される時期は未明 • sun.misc.Unsafe を含む重要な内部 API はJDK9 では隠蔽のみ、JDK10 で は削除したいという方向に議論が進んでいる (ソース:ML, JEP260) • 代替方法も提案されているが実際に実装が揃うのはこれから • という状況なので、JDK9 で使う方法を含めた具体的な実装はまだこれ からですが、準備は意識した方が良いです。Feature Complete で確認 しましょう :) なお、黒魔術なので仕組みを理解してから使いましょう
  13. 13. 211: Elide Deprecation Warnings on Import Statements •オオカミ少年化した warning を 一部削減 212: Resolve Lint and Doclint Warnings •放置されてた OpenJDK ビルドの 際に出る warning を修正
  14. 14. 213: Milling Project Coin •Project Coin (微細版). •IDEに任せれば良いので割愛 214: Remove GC Combinations Deprecated in JDK 8 •使われない GC 組合せを削除 • DefNew + CMS / iCMS • ParNew + SerialOld / iCMS • CMS foreground(s) • UseCMSCompactAtFullCollection • CMSFullGCsBeforeCompaction • UseCMSCollectionPassing
  15. 15. 219: Datagram Transport Layer Security (DTLS) •API for DTLS 1.0 (RFC 4347) and DTLS 1.2 (RFC 6347) •DTLS は Datagram Transport Layer Security(データグラム・トランス ポート・レイヤー・セキュリティー) の略で、インターネット上で安全に データを送受信するための技術のひ とつ。by NTTPC http://www.nttpc.co.jp/yougo/DTLS.html
  16. 16. 221: Simplified Doclet API •Docklet API の置換え (com.sun.javadoc) . 222: jshell: The Java Shell (Read- Eval-Print Loop) •CLI で Java 文法を直実行 •困ったら@bitter_fox へ!
  17. 17. 223: New Version-String Scheme •例:1.8.0_20-b62 -> 9.1.2+62 •$MAJOR.$MINOR.$SECURITY 224: HTML5 Javadoc http://www.w3.org/html/logo/
  18. 18. 226: UTF-8 Property Files •UTF-8 property files が使える 227: Unicode 7.0 •たいとるおんりー
  19. 19. 228: Add More Diagnostic Commands •変態御用達コマンド •print_class_summary (loaded classes) •print_codegenlist (method queued) •print_vm_state •print_uft8pool •datadump_request (heapdump?) •dump_codelist (n-methods) •print_codeblocks (code cache) •set_vmflag
  20. 20. 229: Create PKCS12 Keystores by Default •デフォルトのセキュリティ強 化 230: Microbenchmark Suite •JMH++
  21. 21. 231: Remove Launch-Time JRE Version Selection •-version: オプション削除 •-version ではない。: が付く方 •jar ファイルの “JRE-Version” 項目をマニフェストファイル から削除
  22. 22. 233: Generate Run-Time Compiler Tests Automatically •コンパイラテスト自動生成 •JVM マニアご用達。具体的に は新しい CPU instructions を 試したり、最適化効果を試し たりするのに使う
  23. 23. 236: Parser API for Nashorn •IDE で Nashorn 対応 (のため に Parser API を追加) 237: Linux/AArch64 Port •ARM®
  24. 24. 240: Remove the JVM TI hprof Agent •Good bye hprof •ちなみに Lambda でバグってる筈 •個人的な代用品リスト •OProfile •perf •YourKit •SystemTap (for debug)
  25. 25. 241: Remove the jhat Tool •Good bye jhat •個人的な代用品リスト •Eclipse MAT •HeapStats
  26. 26. 243: Java-Level JVM Compiler Interface •JVM JIT の挙動をAPIからト レース可能に。 244: TLS Application-Layer Protocol Negotiation Extension •HTTP/2 サポート(JEP110)に 向けて、javax.net.ssl で TLS ALPN をサポート。
  27. 27. 245: Validate JVM Command- Line Flag Arguments •一部の JVM オプションで範 囲外を指定しても、それが伝 わらないメッセージを出力し て終了していたのを修正
  28. 28. 248: Make G1 the Default Garbage Collector •Oracle の鶴の一声からG1GC をデフォルト化 •デフォルトで使ってませんよ ね?じゃあ大丈夫。そうじゃ なかったら場合によっては死 249: OCSP Stapling for TLS •TLS. Support RFC 6961.
  29. 29. 250: Store Interned Strings in CDS Archives •G1GC 使用時に Interned String が Class-Data Sharing という領域に配置される •Interned String の住所歴 •Permanent Gen (JDK6) •Java Heap (JDK7-8) •Class-Data Sharing (JDK9+G1)
  30. 30. 251: Multi-Resolution Images •A new java.awt.image API for multi-resolution image. y y/2 x/2 x
  31. 31. 252: Use CLDR Locale Data by Default •Use locale data from the Unicode Common Locale Data Repository. 255: Merge Selected Xerces 2.11.0 Updates into JAXP •To update JAXP from Xerces 2.7.1 to 2.11.0.
  32. 32. 256: BeanInfo Annotations •Replace @beaninfo . •@interface JavaBean {…} •@interface BeanProperty {…} •@interface SwingContainer{…}
  33. 33. 257: Update JavaFX/Media to Newer Version of GStreamer •Update GStreamer. •GStreamer: multimedia framework. 258: HarfBuzz Font-Layout Engine •ICU から HarfBuzz にフォン トレンダリングを変更
  34. 34. おしまい KUBOTA Yuji (@sugarlife) 日本語&ショートバージョン 10/Aug/2015

×