SlideShare a Scribd company logo
JDK9
KUBOTA Yuji (@sugarlife)
日本語&ショートバージョン
Java Japan User Group LT with b33r
10/Aug/2015
おやくそく
•OpenJDK 準拠です
•本スライドはサマリであり、GA
が出るまでに一部変更になる場合
もあります。
•酔ってるので適当に話します :p
•本スライドはサマリのサマリです
•http://goo.gl/FFS9zL (やや詳細版)
http://openjdk.java.net/projects/jdk9/ (31/Jul/2015)
Who am I
•KUBOTA Yuji (@sugarlife)
•icedtea committer
(HeapStats)
•JVM 芸人
•難聴者
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
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
( ゚д゚ )
ひとまとめ (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)
ひとまとめ (2)
•Project Jigsaw
•220: Modular Run-Time Images
•モジュール化による XML 地獄や
依存性地獄からの脱却、等
•前準備
•201: Modular Source Code
•253: Prepare JavaFX UI Controls
& CSS APIs for Modularization
ひとまとめ (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
102: Process API Updates
•プロセス情報を扱う API が実
はなかったので追加。
110: HTTP 2 Client
•SPDYなどを含む HTTP/2 API
を追加。
158: Unified JVM Logging
•今頃 JVM のログフォーマットやオ
プションを統一しようぜという流れ
•ログパーサ開発者は要注意
165: Compiler Control
•コンパイラを詳細に制御したい
変態御用達ツール
•c1・c2 それぞれに詳細設定可能
•しかも動作中のJVMにも設定可能
193: Variable Handles
•sun.misc.Unsafe 等が削除される可
能性があるので、代替方法の提案
その1
(おまけ) 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 で確認
しましょう :) なお、黒魔術なので仕組みを理解してから使いましょう
211: Elide Deprecation Warnings
on Import Statements
•オオカミ少年化した warning を
一部削減
212: Resolve Lint and Doclint
Warnings
•放置されてた OpenJDK ビルドの
際に出る warning を修正
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
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
221: Simplified Doclet API
•Docklet API の置換え
(com.sun.javadoc) .
222: jshell: The Java Shell (Read-
Eval-Print Loop)
•CLI で Java 文法を直実行
•困ったら@bitter_fox へ!
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/
226: UTF-8 Property Files
•UTF-8 property files が使える
227: Unicode 7.0
•たいとるおんりー
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
229: Create PKCS12 Keystores
by Default
•デフォルトのセキュリティ強
化
230: Microbenchmark Suite
•JMH++
231: Remove Launch-Time JRE
Version Selection
•-version: オプション削除
•-version ではない。: が付く方
•jar ファイルの “JRE-Version”
項目をマニフェストファイル
から削除
233: Generate Run-Time
Compiler Tests Automatically
•コンパイラテスト自動生成
•JVM マニアご用達。具体的に
は新しい CPU instructions を
試したり、最適化効果を試し
たりするのに使う
236: Parser API for Nashorn
•IDE で Nashorn 対応 (のため
に Parser API を追加)
237: Linux/AArch64 Port
•ARM®
240: Remove the JVM TI hprof
Agent
•Good bye hprof
•ちなみに Lambda でバグってる筈
•個人的な代用品リスト
•OProfile
•perf
•YourKit
•SystemTap (for debug)
241: Remove the jhat Tool
•Good bye jhat
•個人的な代用品リスト
•Eclipse MAT
•HeapStats
243: Java-Level JVM Compiler
Interface
•JVM JIT の挙動をAPIからト
レース可能に。
244: TLS Application-Layer
Protocol Negotiation Extension
•HTTP/2 サポート(JEP110)に
向けて、javax.net.ssl で TLS
ALPN をサポート。
245: Validate JVM Command-
Line Flag Arguments
•一部の JVM オプションで範
囲外を指定しても、それが伝
わらないメッセージを出力し
て終了していたのを修正
248: Make G1 the Default
Garbage Collector
•Oracle の鶴の一声からG1GC
をデフォルト化
•デフォルトで使ってませんよ
ね?じゃあ大丈夫。そうじゃ
なかったら場合によっては死
249: OCSP Stapling for TLS
•TLS. Support RFC 6961.
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)
251: Multi-Resolution Images
•A new java.awt.image API for
multi-resolution image.
y
y/2
x/2
x
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.
256: BeanInfo Annotations
•Replace @beaninfo .
•@interface JavaBean {…}
•@interface BeanProperty {…}
•@interface SwingContainer{…}
257: Update JavaFX/Media to
Newer Version of GStreamer
•Update GStreamer.
•GStreamer: multimedia
framework.
258: HarfBuzz Font-Layout Engine
•ICU から HarfBuzz にフォン
トレンダリングを変更
おしまい
KUBOTA Yuji (@sugarlife)
日本語&ショートバージョン
10/Aug/2015

More Related Content

PPTX
Java 9で進化する診断ツール
Yasumasa Suenaga
 
PDF
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
 
PPTX
Panamaを先取り!? JVMCIでJITと遊ぶ
Yasumasa Suenaga
 
PPTX
jcmd をさわってみよう
Tsunenaga Hanyuda
 
PDF
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
 
PDF
Open Liberty / WebSphere Liberty
Takakiyo Tanaka
 
PDF
jjugccc2018 app review postmortem
tamtam180
 
PDF
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 
Java 9で進化する診断ツール
Yasumasa Suenaga
 
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
 
Panamaを先取り!? JVMCIでJITと遊ぶ
Yasumasa Suenaga
 
jcmd をさわってみよう
Tsunenaga Hanyuda
 
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
 
Open Liberty / WebSphere Liberty
Takakiyo Tanaka
 
jjugccc2018 app review postmortem
tamtam180
 
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
 

What's hot (20)

PDF
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
 
PPTX
Java トラブル解析支援ツール HeapStats のご紹介
Shinya Takebayashi
 
PDF
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
PPTX
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
NTT DATA Technology & Innovation
 
PDF
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
 
PDF
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
PDF
Jakarta EE 9 と これから
Kenji Kazumura
 
PPTX
Heap statsfx analyzer
Yasumasa Suenaga
 
PPTX
Java EE8 Report
Norito Agetsuma
 
PPTX
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
PPTX
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
 
PDF
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
 
PDF
Microblaze loader
Takefumi MIYOSHI
 
PPT
Java9新機能概要
HonMarkHunt
 
PDF
Unified JVM Logging
Yuji Kubota
 
PDF
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
 
PDF
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
 
PDF
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
 
PPTX
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
 
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
Java 10でぼくたちの生活はどう変わるの?
Yuji Kubota
 
Java トラブル解析支援ツール HeapStats のご紹介
Shinya Takebayashi
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
 
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
NTT DATA Technology & Innovation
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
 
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
Jakarta EE 9 と これから
Kenji Kazumura
 
Heap statsfx analyzer
Yasumasa Suenaga
 
Java EE8 Report
Norito Agetsuma
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
 
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
 
Microblaze loader
Takefumi MIYOSHI
 
Java9新機能概要
HonMarkHunt
 
Unified JVM Logging
Yuji Kubota
 
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
 
Open Liberty: オープンソースになったWebSphere Liberty
Takakiyo Tanaka
 
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
 
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
Ad

Viewers also liked (17)

PDF
jcmd #javacasual
Yuji Kubota
 
PDF
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Yuji Kubota
 
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
 
PDF
エスイーのしごと
Yoshitaka Kawashima
 
PPTX
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
 
PPTX
良いコードとは
Nobuyuki Matsui
 
PDF
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
 
PDF
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
 
PPTX
JVM言語を使ってみようの歌
YujiSoftware
 
PPTX
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 
PDF
Prepare for Java 9 #jjug
Yuji Kubota
 
PDF
楽して JVM を学びたい #jjug
Yuji Kubota
 
PDF
Graph Algorithms Part 1
Taku Miyakawa
 
PDF
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
 
PPTX
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
 
PDF
ITエンジニアに易しいUI/UXデザイン
Roy Kim
 
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
jcmd #javacasual
Yuji Kubota
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
Yuji Kubota
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
 
エスイーのしごと
Yoshitaka Kawashima
 
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
 
良いコードとは
Nobuyuki Matsui
 
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
 
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
 
JVM言語を使ってみようの歌
YujiSoftware
 
Java でつくる 低レイテンシ実装の技巧
Ryosuke Yamazaki
 
Prepare for Java 9 #jjug
Yuji Kubota
 
楽して JVM を学びたい #jjug
Yuji Kubota
 
Graph Algorithms Part 1
Taku Miyakawa
 
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
 
ITエンジニアに易しいUI/UXデザイン
Roy Kim
 
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
 
Ad

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

PDF
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
 
PDF
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
 
PDF
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
PDF
JavaOne2015報告またはこれからのJava
なおき きしだ
 
PPTX
LL2021 Java update
torutk
 
PDF
Java SE 再入門
minazou67
 
PPTX
Java 9 and Future #jjug
Yuji Kubota
 
PPTX
LLoT2016 Java Update
torutk
 
PDF
JakartaOne Livestream Japan 2020
Kenji Kazumura
 
PDF
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
PDF
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
Takakiyo Tanaka
 
PDF
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
Shintaro Hosoai
 
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
PDF
JavaOne2012報告会 Java ME
Hiroki Ooyama
 
PDF
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
David Buck
 
PDF
What is java_se_7
TakumiIINO
 
PPTX
福井イベント
Yoshio Terada
 
PDF
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
PDF
Javaはコミュニティの力で再び偉大になれるのか
Yusuke Suzuki
 
PPTX
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
 
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
 
JavaOne2015報告またはこれからのJava
なおき きしだ
 
LL2021 Java update
torutk
 
Java SE 再入門
minazou67
 
Java 9 and Future #jjug
Yuji Kubota
 
LLoT2016 Java Update
torutk
 
JakartaOne Livestream Japan 2020
Kenji Kazumura
 
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
Takakiyo Tanaka
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
Shintaro Hosoai
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
JavaOne2012報告会 Java ME
Hiroki Ooyama
 
Java SE 8におけるHotSpotの進化 [Java Day Tokyo 2014 C-2]
David Buck
 
What is java_se_7
TakumiIINO
 
福井イベント
Yoshio Terada
 
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
Javaはコミュニティの力で再び偉大になれるのか
Yusuke Suzuki
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 

More from Yuji Kubota (15)

PDF
Head toward Java 15 and Java 16
Yuji Kubota
 
PDF
Head toward Java 14 and Java 15 #LINE_DM
Yuji Kubota
 
PDF
Head toward Java 14 and Java 15
Yuji Kubota
 
PDF
オンライン会議と音声認識
Yuji Kubota
 
PDF
Catch up Java 12 and Java 13
Yuji Kubota
 
PDF
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
PPTX
Project Jigsaw #kanjava
Yuji Kubota
 
PPTX
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Yuji Kubota
 
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
 
PDF
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
 
PDF
HeapStats: Introduction and Technical Preview
Yuji Kubota
 
PDF
JVM のいろはにほ #javajo
Yuji Kubota
 
PDF
HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring...
Yuji Kubota
 
PDF
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
 
PDF
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
Yuji Kubota
 
Head toward Java 15 and Java 16
Yuji Kubota
 
Head toward Java 14 and Java 15 #LINE_DM
Yuji Kubota
 
Head toward Java 14 and Java 15
Yuji Kubota
 
オンライン会議と音声認識
Yuji Kubota
 
Catch up Java 12 and Java 13
Yuji Kubota
 
Introduction to Java 11: Support and JVM Features #jjug
Yuji Kubota
 
Project Jigsaw #kanjava
Yuji Kubota
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Yuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
 
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
 
HeapStats: Introduction and Technical Preview
Yuji Kubota
 
JVM のいろはにほ #javajo
Yuji Kubota
 
HeapStats: Troubleshooting with Serviceability and the New Runtime Monitoring...
Yuji Kubota
 
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
Yuji Kubota
 
29 Tips in 40 Minitues for GlassFish Fans #glassfishjp
Yuji Kubota
 

Recently uploaded (11)

PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 

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

  • 3. Who am I •KUBOTA Yuji (@sugarlife) •icedtea committer (HeapStats) •JVM 芸人 •難聴者
  • 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. 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. ひとまとめ (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. ひとまとめ (2) •Project Jigsaw •220: Modular Run-Time Images •モジュール化による XML 地獄や 依存性地獄からの脱却、等 •前準備 •201: Modular Source Code •253: Prepare JavaFX UI Controls & CSS APIs for Modularization
  • 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. 102: Process API Updates •プロセス情報を扱う API が実 はなかったので追加。 110: HTTP 2 Client •SPDYなどを含む HTTP/2 API を追加。
  • 10. 158: Unified JVM Logging •今頃 JVM のログフォーマットやオ プションを統一しようぜという流れ •ログパーサ開発者は要注意 165: Compiler Control •コンパイラを詳細に制御したい 変態御用達ツール •c1・c2 それぞれに詳細設定可能 •しかも動作中のJVMにも設定可能
  • 11. 193: Variable Handles •sun.misc.Unsafe 等が削除される可 能性があるので、代替方法の提案 その1
  • 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. 211: Elide Deprecation Warnings on Import Statements •オオカミ少年化した warning を 一部削減 212: Resolve Lint and Doclint Warnings •放置されてた OpenJDK ビルドの 際に出る warning を修正
  • 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. 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. 221: Simplified Doclet API •Docklet API の置換え (com.sun.javadoc) . 222: jshell: The Java Shell (Read- Eval-Print Loop) •CLI で Java 文法を直実行 •困ったら@bitter_fox へ!
  • 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. 226: UTF-8 Property Files •UTF-8 property files が使える 227: Unicode 7.0 •たいとるおんりー
  • 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. 229: Create PKCS12 Keystores by Default •デフォルトのセキュリティ強 化 230: Microbenchmark Suite •JMH++
  • 21. 231: Remove Launch-Time JRE Version Selection •-version: オプション削除 •-version ではない。: が付く方 •jar ファイルの “JRE-Version” 項目をマニフェストファイル から削除
  • 22. 233: Generate Run-Time Compiler Tests Automatically •コンパイラテスト自動生成 •JVM マニアご用達。具体的に は新しい CPU instructions を 試したり、最適化効果を試し たりするのに使う
  • 23. 236: Parser API for Nashorn •IDE で Nashorn 対応 (のため に Parser API を追加) 237: Linux/AArch64 Port •ARM®
  • 24. 240: Remove the JVM TI hprof Agent •Good bye hprof •ちなみに Lambda でバグってる筈 •個人的な代用品リスト •OProfile •perf •YourKit •SystemTap (for debug)
  • 25. 241: Remove the jhat Tool •Good bye jhat •個人的な代用品リスト •Eclipse MAT •HeapStats
  • 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. 245: Validate JVM Command- Line Flag Arguments •一部の JVM オプションで範 囲外を指定しても、それが伝 わらないメッセージを出力し て終了していたのを修正
  • 28. 248: Make G1 the Default Garbage Collector •Oracle の鶴の一声からG1GC をデフォルト化 •デフォルトで使ってませんよ ね?じゃあ大丈夫。そうじゃ なかったら場合によっては死 249: OCSP Stapling for TLS •TLS. Support RFC 6961.
  • 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. 251: Multi-Resolution Images •A new java.awt.image API for multi-resolution image. y y/2 x/2 x
  • 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. 256: BeanInfo Annotations •Replace @beaninfo . •@interface JavaBean {…} •@interface BeanProperty {…} •@interface SwingContainer{…}
  • 33. 257: Update JavaFX/Media to Newer Version of GStreamer •Update GStreamer. •GStreamer: multimedia framework. 258: HarfBuzz Font-Layout Engine •ICU から HarfBuzz にフォン トレンダリングを変更