SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
JavaOne 2016
Java SE Feedback
KUBOTA Yuji @sugarlife <kubota.yuji@gmail.com>
NTT OSS Center
2016/Oct/15
Copyright©2016 NTT corporation
2
• 公開予定
•写真 撮 Twitter (#jjug #j1jp)
!
•質問 #jjug #j1jp @sugarlife
諸注意
Copyright©2016 NTT corporation
3
Who I am
Copyright©2016 NTT corporation
KUBOTA Yuji (@sugarlife), hard-of-hearing
Senior Expert in NTT
OpenJDK Author (ykubota)
IcedTea Committer
4
Copyright©2016 NTT corporation
https://github.com/HeapStats/heapstats
https://twitter.com/skrb/status/778119996736172033
https://www.flickr.com/photos/yosshi2007/29315365363/in/albu
m-72157672916952542/
5
6
Copyright©2016 NTT corporation
今日 方針
7
う い
Copyright©2016 NTT corporation
頑張 け い 通
愛媛県 亀老山 望 来島海峡大橋 , METI, Creative Commons Attribution 4.0 International License (CC BY 4.0)
8
•Future Java SE
• JDK 9
•Project Jigsaw / JShell / Reactive (Flow API)
• JDK 10 or later
•Project Valhalla / Project Panama
•Changes required for Java 9
Agenda:
Copyright©2016 NTT corporation
今回 題
Future Java SE
Copyright©2016 NTT corporation
9
10
JDK 9
JDK9 release reschedule to 2017/3/23 (2015/12/9)
Feature Complete (2016/5/26)
JDK 9 is not (yet) Feature Complete (2016/6/10)
JDK 9 release reschedule to 2017/7/23 (2016/9/20)
JDK 10
Not scheduled
Schedule
Copyright©2016 NTT corporation
JavaOne 開催直前 JDK 9 再延長
NEW!
11
今年 JDK 9 セ ョン
Copyright©2016 NTT corporation
多く 良 あ け状態
12
•JDK 9
• Project Jigsaw
•Project Kulla (JShell)
• Reactive Streams Specification (The Flow API)
•JDK 10 or later
• Project Valhalla
• Project Panama
主 新機能
Copyright©2016 NTT corporation
HTTP/2 Client jcmd 拡張 あ
13
•JAR Hell
•Lack / Conflict / Unsafe internal update
•New container: Module
•Dependency / Exportation / Version
•Separate standard libraries: Module JDK
•jlink: Make Custom JRE
Project Jigsaw
Copyright©2016 NTT corporation
必要最低限 抑え う依 公開先 定義可能
14
• Directives in module-package.java
• requires public <module>
• requires static <module>
• exports private <package>
• @bitter_fox 記事 参考
• Many command line options
• 例: -mp -> -p
Difference from JavaOne 2015
Copyright©2016 NTT corporation
-J-Duser.language=en 確認 う
transitive
15
Project Kulla (JShell)
Copyright©2016 NTT corporation
客様 中 コ 様 い い
16
•REPL for Java
•Alternatives for Exercise.java ?
•CLI framework
• https://github.com/YaSuenag/jmxclient
Project Kulla (JShell)
Copyright©2016 NTT corporation
将来的 jcmd jmx 触 い
$ jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
17
•Reactive programming
•依 関係( ) 関数 組合
•Reactive Streams
•非 期 標準 様 ン
• 制御( 溢 防止) 相互互換性 確保
• https://community.oracle.com/docs/DOC-1006738
Reactive Streams (The Flow API)
Copyright©2016 NTT corporation
@okapies 資料 @making 資料 解 い
18
•Value types will be simple
•Value types
•Generic Specialization
•Enhanced volatiles
•今年 発表 (キ ンセ )
• JVMLS 2016 あ (映像1, 映像2, 映像3)
Project Valhalla
Copyright©2016 NTT corporation
型 仲良く う いう
19
•Pure data aggregates that (ideally) should
have no ancillary overhead
•Value types is simple
•Identity lead pointer
•Pointer lead to indirection
•Indirection lead to suffering
Why Project Valhalla
Copyright©2016 NTT corporation
ン あ
20
•A better way to do native interop
•Foreign APIs
•Vectors
•(Array 2.0)
•今年 大 変更 (経過 順調 う)
• JVMLS 2016 (映像1, 映像2, 映像3)
Project Panama
Copyright©2016 NTT corporation
Native(あ い CPU) 仲良く う いう
21
•1000s of vector instructions on x86
• Intel intrinsic instructions
• AVX/AVX2: 〜380
• AVX-512: 〜3800
•How to bind to particular machine
instructions in the implementation?
Why Project Panama
Copyright©2016 NTT corporation
計算機 (CPU) 使い切
22
Changes required for Java 9
主 出典:
openjdk.java.net/projects/jdk9
JavaOne 2016 Sessions:
Preparing for JDK 9:
The Sharp Edges [CON6171]
JDK 9 Language, Tooling,
and Library Features [CON2497]
Copyright©2016 NTT corporation
23
Changes required for Java 9
大体影響 あ う
Copyright©2016 NTT corporation
24
•大半 内部 API セ 化(隠蔽)
•JDK 9 コ ン ョン 回避 可能
•広く使わ い 物(Critical API) 代替 用
意 公開
•jdeps 使 影響あ 確認 推奨
• 特 Multi-Release JAR files (JEP 238, JDK 9)
JEP 260: Encapsulate most internal APIs
Copyright©2016 NTT corporation
特 利用 影響受け い 確認
25
•Critical APIs (keep public)
• sun.misc.Unsafe
•sun.misc.{Signal,SignalHandler}
• sun.misc.Cleaner
• sun.reflect.Reflection::getCallerClass
• sun.reflect.ReflectionFactory
• 以外 削除(隠蔽)
JEP 260: Encapsulate most internal APIs
Copyright©2016 NTT corporation
Critical APIs JDK 10 以降 削除 可能性あ
26
•Endorsed-standards override and Extension
mechanism has been dropped
•-Xbootclasspath, -Xbootclasspath/p,
-Dsun.boot.class.path has been removed
• 参考: 検索方法(JDK 8)
• AppClassLoader URLClassLoader ン ン
無く (継承 い)等 影響
Change class loaders mechanism in JEP
261: Module System
Copyright©2016 NTT corporation
Module 化 配置 推奨 いう流
27
•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
28
•-source / -target 3 世代前 サ
•JDK 9 場合 1.6 1.5 drop
JEP 182: Policy for Retiring javac –
source and –target options
Copyright©2016 NTT corporation
JDK 9 ビ JDK 5 動 人 居 い ?
29
•-version: コ ン ン ョン削除
•-version く : 付く方
•JAR Manifest JRE-Version 削除
JEP 231: Remove Launch-Time JRE
Version Selection
Copyright©2016 NTT corporation
起動時 ョン指定 く
30
•1.8.0_101-b14
•1.$MAJOR.0_$MINOR-b$BUILD
•9.1.2+62
•$MAJOR.$MINOR.$SECURITY+$BUILD
•java.specification.version
•1.8 9-ea (GA 後 9 )
JEP 223: New Version String Scheme
Copyright©2016 NTT corporation
ョン表記 決 打 読 込 影響
31
•JDK 構造 ァ 変更
JEP 220: Modular Run-Time Images
Copyright©2016 NTT corporation
ァ 等 決 打 読 込 影響
32
•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) セキュ 面 非推奨化 流
33
•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
コ いう 利用 証明書 問題
34
•従来 JVM 廃止 ョン
変更
• く使わ い ョン 変更例
• -XX:+PrintGCDetails -Xloggc:gc.log.`date +%Y-
%m-%d_%H-%M-%S` -XX:+PrintGCTimeStamps
• -Xlog:gc*=debug:gc.log.%t:time,level
• -Xlog:[<selection>]:[<output>]:[<decorators>]
JEP 158: Unified JVM Logging
JEP 271: Unified GC Logging
Copyright©2016 NTT corporation
Parser 系 い い全滅
35
JEP 158: Unified JVM Logging
JEP 271: Unified GC Logging
Copyright©2016 NTT corporation
JJUG CCC 2016 Fall 楽 !(通 言 い)
36
Changes required for Java 9
範囲 狭い 刺 痛い
Copyright©2016 NTT corporation
37
• 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 削除
38
• 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
関係 多い
39
•UnsupportedOperationException 返
• JDK-7059085 (非公開)
•Java SE 1.2 時代 非推奨
•Thread.stop() 残
• いえ inconsistent state
留 処理 危険 伴う 注意
Thread.stop(Throwable) throw UOE
Copyright©2016 NTT corporation
前 ョン い
40
• Arrays.asList(x).toArrays() returns Object[]
(JDK-6260652)
• 今 配列 ン(clone) 返 い
• JDK 9 Object[] 返
Behavior changed API
Copyright©2016 NTT corporation
JEP 関係 い API 挙動変更
41
• _ 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
いい 前 授け う
42
•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
文 列 性能 永遠 課題
43
•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
前 ョン 非推奨化 削除 一環
44
• 以下 組合
• 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 時点 非推奨 非サ
45
• Parallel GC G1 GC
•-XX:+UseParallel(Old)GC 従来通
•CMS GC 非推奨化 進 い
(JEP 291)
JEP 248: Make G1 the Default Garbage
Collector
Copyright©2016 NTT corporation
G1 GC 資料(JJUG CCC 2015 Fall) 参考
46
•JEP 240: hprof
• コ 残 Oracle JDK 提供 い
•JVM TI BCI コ あ 非公式扱い
• heapdump jmap/jcmd, profiler VisualVM等
•JEP 241: jhat
• くコ 残 experimental 除去
•大半 experimental
Good bye tools by JEP 240 and JEP 241
Copyright©2016 NTT corporation
[PR] heap profiler & visualizer HeapStats !
47
•jcmd 機能強化
•Java Day Tokyo 2016 @YaSuenag 講演
•JavaOne 2016 講演
•jcmd 自体 Java Casual #2 !
•http://java-casual.connpass.com/event/42461/
JEP 228: Add More Diagnostic Commands
Copyright©2016 NTT corporation
jcmd 不幸 減 広 い
48
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
一覧 感
49
影響 あ う 変更
Copyright©2016 NTT corporation
影響度合い 掴 い
• Windows 32 Client VM 廃止
• Unicode CLDR (JEP 252)
• -Djava.locale.providers=JRE,SPI 従来通
• JavaDB (Apache Derby) 廃止 (JDK-8004716)
• Property file UTF-8 利用可能(JEP 226)
• ResourceBundle API UTF-8 読込
• StringBuilder::append 生成 コ 変更 (JEP 280)
• invokedynamic 利用 JDK library function ぶ う
50
い
@sugarlife
kubota.yuji@gmail.com
Copyright©2016 NTT corporation

Weitere ähnliche Inhalte

Was ist angesagt?

今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern javaChihiro Ito
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaYoshimasa Tanabe
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
 
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basicJjug 20140430 gradle_basic
Jjug 20140430 gradle_basicTakuma Watabiki
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムsatsuki fukazu
 
JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020Kenji Kazumura
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo!デベロッパーネットワーク
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみましたYahoo!デベロッパーネットワーク
 
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Toshiaki Maki
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月VirtualTech Japan Inc.
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側賢 秋穂
 
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cCDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cNorito Agetsuma
 

Was ist angesagt? (20)

今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
CPUから見たG1GC
CPUから見たG1GCCPUから見たG1GC
CPUから見たG1GC
 
Advanced database monitoring in modern java
Advanced database monitoring in modern javaAdvanced database monitoring in modern java
Advanced database monitoring in modern java
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
 
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basicJjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
 
JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
 
microprofile
microprofilemicroprofile
microprofile
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
 
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
 
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
 
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
 
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4cCDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
 

Ähnlich wie JavaOne 2016 Java SE Feedback #jjug #j1jp

Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjugYuji Kubota
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Chihiro Ito
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編SATOSHI TAGOMORI
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Yuji Kubota
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugYuji Kubota
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)NTT DATA Technology & Innovation
 
Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Kishin Yagami
 
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo!デベロッパーネットワーク
 
Lightweight Keycloak
Lightweight KeycloakLightweight Keycloak
Lightweight KeycloakHiroyuki Wada
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決オラクルエンジニア通信
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~Shinji Takao
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?Takakiyo Tanaka
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応歩 柴田
 
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)shojiro-tanaka
 

Ähnlich wie JavaOne 2016 Java SE Feedback #jjug #j1jp (20)

Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
 
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
 
Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?Java 10でぼくたちの生活はどう変わるの?
Java 10でぼくたちの生活はどう変わるの?
 
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjugOpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例Rocroにおけるgcp活用事例
Rocroにおけるgcp活用事例
 
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -
 
Lightweight Keycloak
Lightweight KeycloakLightweight Keycloak
Lightweight Keycloak
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応デモとディスカッションで体験するOracle DBトラブル対応
デモとディスカッションで体験するOracle DBトラブル対応
 
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
 
Tech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_shareTech deepdive#2 datastore_180317_share
Tech deepdive#2 datastore_180317_share
 

Mehr von Yuji Kubota

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Yuji Kubota
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識Yuji Kubota
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugYuji Kubota
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Yuji Kubota
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugYuji Kubota
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugYuji Kubota
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjavaYuji Kubota
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Yuji Kubota
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasualYuji Kubota
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Yuji Kubota
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualYuji Kubota
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTYuji Kubota
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugYuji Kubota
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGYuji Kubota
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewYuji Kubota
 

Mehr von Yuji Kubota (20)

Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
オンライン会議と音声認識
オンライン会議と音声認識オンライン会議と音声認識
オンライン会議と音声認識
 
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjugHead toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
 
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
 
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjug
 
Project Jigsaw #kanjava
Project Jigsaw #kanjavaProject Jigsaw #kanjava
Project Jigsaw #kanjava
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
Secrets of Rock Star Developers (and How to Become One!) [CON7615] (Yuji KUBO...
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
jcmd #javacasual
jcmd #javacasualjcmd #javacasual
jcmd #javacasual
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
 
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LTHeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
 
JDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjugJDK9 新機能 (日本語&ショートバージョン) #jjug
JDK9 新機能 (日本語&ショートバージョン) #jjug
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Kürzlich hochgeladen (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

JavaOne 2016 Java SE Feedback #jjug #j1jp

  • 1. JavaOne 2016 Java SE Feedback KUBOTA Yuji @sugarlife <kubota.yuji@gmail.com> NTT OSS Center 2016/Oct/15 Copyright©2016 NTT corporation
  • 2. 2 • 公開予定 •写真 撮 Twitter (#jjug #j1jp) ! •質問 #jjug #j1jp @sugarlife 諸注意 Copyright©2016 NTT corporation
  • 3. 3 Who I am Copyright©2016 NTT corporation KUBOTA Yuji (@sugarlife), hard-of-hearing Senior Expert in NTT OpenJDK Author (ykubota) IcedTea Committer
  • 7. 7 う い Copyright©2016 NTT corporation 頑張 け い 通 愛媛県 亀老山 望 来島海峡大橋 , METI, Creative Commons Attribution 4.0 International License (CC BY 4.0)
  • 8. 8 •Future Java SE • JDK 9 •Project Jigsaw / JShell / Reactive (Flow API) • JDK 10 or later •Project Valhalla / Project Panama •Changes required for Java 9 Agenda: Copyright©2016 NTT corporation 今回 題
  • 9. Future Java SE Copyright©2016 NTT corporation 9
  • 10. 10 JDK 9 JDK9 release reschedule to 2017/3/23 (2015/12/9) Feature Complete (2016/5/26) JDK 9 is not (yet) Feature Complete (2016/6/10) JDK 9 release reschedule to 2017/7/23 (2016/9/20) JDK 10 Not scheduled Schedule Copyright©2016 NTT corporation JavaOne 開催直前 JDK 9 再延長 NEW!
  • 11. 11 今年 JDK 9 セ ョン Copyright©2016 NTT corporation 多く 良 あ け状態
  • 12. 12 •JDK 9 • Project Jigsaw •Project Kulla (JShell) • Reactive Streams Specification (The Flow API) •JDK 10 or later • Project Valhalla • Project Panama 主 新機能 Copyright©2016 NTT corporation HTTP/2 Client jcmd 拡張 あ
  • 13. 13 •JAR Hell •Lack / Conflict / Unsafe internal update •New container: Module •Dependency / Exportation / Version •Separate standard libraries: Module JDK •jlink: Make Custom JRE Project Jigsaw Copyright©2016 NTT corporation 必要最低限 抑え う依 公開先 定義可能
  • 14. 14 • Directives in module-package.java • requires public <module> • requires static <module> • exports private <package> • @bitter_fox 記事 参考 • Many command line options • 例: -mp -> -p Difference from JavaOne 2015 Copyright©2016 NTT corporation -J-Duser.language=en 確認 う transitive
  • 15. 15 Project Kulla (JShell) Copyright©2016 NTT corporation 客様 中 コ 様 い い
  • 16. 16 •REPL for Java •Alternatives for Exercise.java ? •CLI framework • https://github.com/YaSuenag/jmxclient Project Kulla (JShell) Copyright©2016 NTT corporation 将来的 jcmd jmx 触 い $ jshell | Welcome to JShell -- Version 9-ea | For an introduction type: /help intro
  • 17. 17 •Reactive programming •依 関係( ) 関数 組合 •Reactive Streams •非 期 標準 様 ン • 制御( 溢 防止) 相互互換性 確保 • https://community.oracle.com/docs/DOC-1006738 Reactive Streams (The Flow API) Copyright©2016 NTT corporation @okapies 資料 @making 資料 解 い
  • 18. 18 •Value types will be simple •Value types •Generic Specialization •Enhanced volatiles •今年 発表 (キ ンセ ) • JVMLS 2016 あ (映像1, 映像2, 映像3) Project Valhalla Copyright©2016 NTT corporation 型 仲良く う いう
  • 19. 19 •Pure data aggregates that (ideally) should have no ancillary overhead •Value types is simple •Identity lead pointer •Pointer lead to indirection •Indirection lead to suffering Why Project Valhalla Copyright©2016 NTT corporation ン あ
  • 20. 20 •A better way to do native interop •Foreign APIs •Vectors •(Array 2.0) •今年 大 変更 (経過 順調 う) • JVMLS 2016 (映像1, 映像2, 映像3) Project Panama Copyright©2016 NTT corporation Native(あ い CPU) 仲良く う いう
  • 21. 21 •1000s of vector instructions on x86 • Intel intrinsic instructions • AVX/AVX2: 〜380 • AVX-512: 〜3800 •How to bind to particular machine instructions in the implementation? Why Project Panama Copyright©2016 NTT corporation 計算機 (CPU) 使い切
  • 22. 22 Changes required for Java 9 主 出典: openjdk.java.net/projects/jdk9 JavaOne 2016 Sessions: Preparing for JDK 9: The Sharp Edges [CON6171] JDK 9 Language, Tooling, and Library Features [CON2497] Copyright©2016 NTT corporation
  • 23. 23 Changes required for Java 9 大体影響 あ う Copyright©2016 NTT corporation
  • 24. 24 •大半 内部 API セ 化(隠蔽) •JDK 9 コ ン ョン 回避 可能 •広く使わ い 物(Critical API) 代替 用 意 公開 •jdeps 使 影響あ 確認 推奨 • 特 Multi-Release JAR files (JEP 238, JDK 9) JEP 260: Encapsulate most internal APIs Copyright©2016 NTT corporation 特 利用 影響受け い 確認
  • 25. 25 •Critical APIs (keep public) • sun.misc.Unsafe •sun.misc.{Signal,SignalHandler} • sun.misc.Cleaner • sun.reflect.Reflection::getCallerClass • sun.reflect.ReflectionFactory • 以外 削除(隠蔽) JEP 260: Encapsulate most internal APIs Copyright©2016 NTT corporation Critical APIs JDK 10 以降 削除 可能性あ
  • 26. 26 •Endorsed-standards override and Extension mechanism has been dropped •-Xbootclasspath, -Xbootclasspath/p, -Dsun.boot.class.path has been removed • 参考: 検索方法(JDK 8) • AppClassLoader URLClassLoader ン ン 無く (継承 い)等 影響 Change class loaders mechanism in JEP 261: Module System Copyright©2016 NTT corporation Module 化 配置 推奨 いう流
  • 27. 27 •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
  • 28. 28 •-source / -target 3 世代前 サ •JDK 9 場合 1.6 1.5 drop JEP 182: Policy for Retiring javac – source and –target options Copyright©2016 NTT corporation JDK 9 ビ JDK 5 動 人 居 い ?
  • 29. 29 •-version: コ ン ン ョン削除 •-version く : 付く方 •JAR Manifest JRE-Version 削除 JEP 231: Remove Launch-Time JRE Version Selection Copyright©2016 NTT corporation 起動時 ョン指定 く
  • 30. 30 •1.8.0_101-b14 •1.$MAJOR.0_$MINOR-b$BUILD •9.1.2+62 •$MAJOR.$MINOR.$SECURITY+$BUILD •java.specification.version •1.8 9-ea (GA 後 9 ) JEP 223: New Version String Scheme Copyright©2016 NTT corporation ョン表記 決 打 読 込 影響
  • 31. 31 •JDK 構造 ァ 変更 JEP 220: Modular Run-Time Images Copyright©2016 NTT corporation ァ 等 決 打 読 込 影響
  • 32. 32 •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) セキュ 面 非推奨化 流
  • 33. 33 •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 コ いう 利用 証明書 問題
  • 34. 34 •従来 JVM 廃止 ョン 変更 • く使わ い ョン 変更例 • -XX:+PrintGCDetails -Xloggc:gc.log.`date +%Y- %m-%d_%H-%M-%S` -XX:+PrintGCTimeStamps • -Xlog:gc*=debug:gc.log.%t:time,level • -Xlog:[<selection>]:[<output>]:[<decorators>] JEP 158: Unified JVM Logging JEP 271: Unified GC Logging Copyright©2016 NTT corporation Parser 系 い い全滅
  • 35. 35 JEP 158: Unified JVM Logging JEP 271: Unified GC Logging Copyright©2016 NTT corporation JJUG CCC 2016 Fall 楽 !(通 言 い)
  • 36. 36 Changes required for Java 9 範囲 狭い 刺 痛い Copyright©2016 NTT corporation
  • 37. 37 • 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 削除
  • 38. 38 • 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 関係 多い
  • 39. 39 •UnsupportedOperationException 返 • JDK-7059085 (非公開) •Java SE 1.2 時代 非推奨 •Thread.stop() 残 • いえ inconsistent state 留 処理 危険 伴う 注意 Thread.stop(Throwable) throw UOE Copyright©2016 NTT corporation 前 ョン い
  • 40. 40 • Arrays.asList(x).toArrays() returns Object[] (JDK-6260652) • 今 配列 ン(clone) 返 い • JDK 9 Object[] 返 Behavior changed API Copyright©2016 NTT corporation JEP 関係 い API 挙動変更
  • 41. 41 • _ 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 いい 前 授け う
  • 42. 42 •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 文 列 性能 永遠 課題
  • 43. 43 •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 前 ョン 非推奨化 削除 一環
  • 44. 44 • 以下 組合 • 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 時点 非推奨 非サ
  • 45. 45 • Parallel GC G1 GC •-XX:+UseParallel(Old)GC 従来通 •CMS GC 非推奨化 進 い (JEP 291) JEP 248: Make G1 the Default Garbage Collector Copyright©2016 NTT corporation G1 GC 資料(JJUG CCC 2015 Fall) 参考
  • 46. 46 •JEP 240: hprof • コ 残 Oracle JDK 提供 い •JVM TI BCI コ あ 非公式扱い • heapdump jmap/jcmd, profiler VisualVM等 •JEP 241: jhat • くコ 残 experimental 除去 •大半 experimental Good bye tools by JEP 240 and JEP 241 Copyright©2016 NTT corporation [PR] heap profiler & visualizer HeapStats !
  • 47. 47 •jcmd 機能強化 •Java Day Tokyo 2016 @YaSuenag 講演 •JavaOne 2016 講演 •jcmd 自体 Java Casual #2 ! •http://java-casual.connpass.com/event/42461/ JEP 228: Add More Diagnostic Commands Copyright©2016 NTT corporation jcmd 不幸 減 広 い
  • 48. 48 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 一覧 感
  • 49. 49 影響 あ う 変更 Copyright©2016 NTT corporation 影響度合い 掴 い • Windows 32 Client VM 廃止 • Unicode CLDR (JEP 252) • -Djava.locale.providers=JRE,SPI 従来通 • JavaDB (Apache Derby) 廃止 (JDK-8004716) • Property file UTF-8 利用可能(JEP 226) • ResourceBundle API UTF-8 読込 • StringBuilder::append 生成 コ 変更 (JEP 280) • invokedynamic 利用 JDK library function ぶ う