GreenTeaJUG活动 第22期 JDK9新特性讨论

时间:2016-04-05
地点:网络
组织:@JianhaoMo

甲骨文希望听到中国Java社区关于JDK9的反馈,欢迎任何形式的反馈。

The attachment is the JDK9 new features introduction, could you help to forward it to China Java User Groups? JDK9 first introduces Jigsaw feature, it causes big changes in JDK structure and APIs, we would contact China Java User Group to collect their questions. Could you help to copy me when you send this presentation to the user groups?



This Is Not A Drill
Prepare For JDK 9

Rory O‘Donnell
Senior Quality Manager OpenJDK Quality Lead
Java Platform Group @ Oracle March 19th, 2016

Prepare for JDK 9

Categories of JDK-internal APIs
http://openjdk.java.net/jeps/260
• Non-critical
– No evidence of use outside of JDK
– or used only for convenience
• Critical
– Functionality that would be difficult, if not impossible, to implement outside of the JDK

JEP 260 Proposal
http://openjdk.java.net/jeps/260
• Encapsulate all non-critical internal APIs by default
• Encapsulate all critical internal APIs for which supported replacements exist in JDK 8
• Do not encapsulate critical internal APIs
– Deprecate them in JDK 9
– Plan to remove in JDK 10
– Provide a workaround via command-line flag

JEP 260 Proposal
http://openjdk.java.net/jeps/260
• Propose as critical internal APIs – sun.misc.Unsafe
– sun.misc.{Signal,SignalHandler}
– sun.misc.Cleaner
– sun.reflect.Reflection::getCallerClass
– sun.reflect.ReflecWonFactory

Finding uses of JDK-internal APIs
http://openjdk.java.net/jeps/260
• jdeps tool in JDK 8, improved in JDK 9 • Maven JDeps Plugin

Removed 6 deprecated methods
http://openjdk.java.net/jeps/162
• Flagged for removal in JSR 337, and JEP 162
• Removed
– java.util.logging.LogManager::addPropertyChangeListener
– java.util.logging.LogManager::removePropertyChangeListener
– java.util.jar.Pack200.Packer::addPropertyChangeListener
– java.util.jar.Pack200.Packer::removePropertyChangeListener
– java.util.jar.Pack200.Unpacker::addPropertyChangeListener
– java.util.jar.Pack200.Unpacker::removePropertyChangeListener

Change the binary structure of the JRE and JDK
http://openjdk.java.net/jeps/220
• Motivation
• Not an API but still a disruptive change
• Details in JEP 220
• In JDK 9 since late 2014 to give lots of time for the tools to catch up

Removed
http://openjdk.java.net/jeps/220
• Endorsed standards override mechanism
• Extension mechanism

Other changes
http://openjdk.java.net/jeps/261
• Application and extension class loaders are no longer instances of java.net.URLClassLoader
• Removed: -Xbootclasspath and -Xbootclasspath/p are removed
• Removed: system property sun.boot.class.path
• JEP 261 has the full list of the issues that we know about

New version-string scheme
http://openjdk.java.net/jeps/223
• Old versioning format is difficult to understand
• New format addresses these problems
• Impacts java -version and related properties

What can you do to prepare?
https://wiki.openjdk.java.net/display/AdopKon/JDK+9+Outreach
• Check code for usages of JDK-internal APIs with jdeps
• If you develop tools then check code for a dependency on rt.jar or tools.jar or the runtime-image layout
• Check code that might be sensitive to the version change
• Check code for uses of underscore as an identifier
• Check code for uses of unrecognized VM opWons such as -XX:MaxPermSize
• Test the JDK 9 EA builds and Project Jigsaw EA builds

Thank you!
Quality Outreach effort wiki:
https://wiki.openjdk.java.net/display/quality/Quality+Outreach





GreenTeaJUG活动 第19期 安利一下近三年的JVM Language Summit

时间:2015-08-13
地点:网络
组织:@JianhaoMo

JVM Language Summit 2015刚开完。

搞这个活动就是觉得关注JVM Language Summit的人太少,主动安利一下。

近三年的链接如下:

JVM Language Summit 2015

JVM Language Summit 2014

JVM Language Summit 2013

GreenTeaJUG活动 第17期 GreenTeaJUG特别奖(一万元现金)

时间:2015-07-19
地点:网络
组织:@JianhaoMo

GreenTeaJUG特别奖

获奖人:孙宇 (阿里花名:洪熙,@洪熙

获奖理由:从零开始,默默坚持五年,专注Hotspot JVM GC代码。

奖金:人民币一万元现金

奖金赞助来源:莫简豪个人

GreenTeaJUG活动 第16期 性能调优利器——PerfJ by 周敏

时间:2015-06-28
地点:网络
组织:以亭

主题:Perfj
讲师:周敏(@MinZhou

周敏

周敏, 暨南大学计算机硕士毕业学位. 主研方向: 大数据、分布式系统. 先后在阿里巴巴担任技术专家, 美国LinkedIn公司Staff Engineer , 现任美国Tango公司Senior Staff Engineer, 带领大数据基础研发团队. 多个Apache开源项目贡献者及提交者. 曾帮助Apache Spark团队获100TB数据排序世界记录. 现定居美国旧金山湾区.

Java作为服务端程序近年来大规模网站服务、大数据、机器学习等方面应用越来越广, 服务端程序的性能越来越关键。当前Java的性能剖析器,例如jvisualvm, jprofiler, YJP都只能从Java代码层面分析Java程序的性能, 无法从JVM, 系统甚至硬件层面找出性能的关键点. 而Linux系统层的perf, systemtap等工具能够查到磁盘IO, 网络IO, CPU, 内存等性能问题,但无法上达至Java层. 中间的这个断层使我们分析Java程序性能非常不便. 最近由演讲者开发的PerfJ可以让开发者从下自上地分析Java程序的性能. 演讲者将阐述perfj的原理, 举例怎么用perfj找到由于CPU cache miss引发的性能问题, 以及分析系统context switch造成的性能问题.

活动形式:微信群讨论(报名成功后获取入群二维码)

活动报名请按照如下格式发邮件到event@greenteajug.cn

姓名:XXX
电话号码:xxxxxxxxxxx
邮箱:xxxx@xxx.xxx
公司:xxxx有限公司
职位:xx工程师
Java使用年限:x年