详情介绍
Java SE Development Kit 9 (简称jdk9)是一款针对Java开发员的软件开发工具包,历经曲折的Java 9正式版终于发布了!本平台提供最新版的jdk9.0正式版jdk-9_linux-x64_bin.tar.gz下载,需要的朋友可下载试试!
JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、扩展提升、性能管理改善等。
其他版本下载
人们期待已久的Java SE 9.0将在2017年9月21日发布,它会带来一些重要的变化。
JDK 9的核心变化就是引入了一种新的Java编程组件,也就是模块,按照Oracle的说法,它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少Java应用和Java核心运行时环境的大小与复杂性。为此,JDK本身进行了模块化,Oracle希望通过这种方式提升性能、安全性和可维护性。
为了支持Java 9的模块,引入一种新的模块化JAR文件形式,按照这种形式会在其根目录中包含一个module-info.class文件。Oracle同时提供了工具,允许我们组合和优化一组模块,形成自定义的运行时镜像(image),这样的镜像不必将整个Java运行时包含进来。模块化所带来的其他变化包括从Java运行时镜像中移除了rt.jar和tools.jar。
InfoQ与Ben Evans进行了交流,以了解他对Java 9.0模块系统的看法,他是Java社区进程(JCP)执行委员会的成员。
Evans:我认为最急需重构的应用恰好就是最适合进行模块化的应用。如果你已经备受Lava Flow / God Class / Stovepipe System地狱的折磨,而且你的利益相关方明确知道这一点,那么你可能更容易说服他们进行一次完整的底层重构,通过渐进式的努力形成一个完成的模块解决方案(而不是简单重构并迁移至Java 8)是值得去做的。
Oracle宣布Java 8会是一个长期支持的发布版本,会一直支持到2022年,因此Evans认为很多的应用将会停留在Java 8上,根本不会升级到Java 9。Evans补充说,有些应用可能会让开发和构建工具链使用Java 8版本,而在生产环境使用Java 9的运行时。
对特定类型的应用来说,这是很有帮助的。例如,我曾经见到有的电子商务网站具有非常大的堆空间,其中包含了大约40G的字符串数据。Java 9的ompact Strings技术能够将这种类型的内存使用减半。这反过来又会对GC的性能带来积极的影响。对于有些应用来说(这可能就包括大型的Solr安装环境及类似场景),单单这一项收益就值得将运行时升级到Java 9。
Java 9使用G1作为默认的垃圾收集器,替代了之前默认使用的Parallel GC。Evans对这项变化的评论:
这项变更是很重要的,因为相对于Parallel来说,G1会在应用线程上做更多的事情,而Parallel几乎没有在应用线程上做任何事情,它基本上完全依赖GC线程完成所有的内存管理。这意味着切换到G1将会为应用线程带来额外的工作,从而直接影响到应用的性能。
在很多(甚至可以说大多数)场景中,这种额外的性能损耗都不是什么问题。但是,在这方面,我确实也曾经见过从Parallel切换到G1时,有一定比例的工作负载会引起性能的下降。对于这些应用来说,这种性能下降是无法接受的,所以他们无法切换至G1收集器。随着G1成为默认的收集器,这将会影响到升级至Java 9的每个应用。
对于大型的代码库是否需要重构为模块的形式,InfoQ询问了Martijn Verburg的意见,他是JClarity的CEO,也是伦敦Java用户组(Java User Group)的联合组织者。
Verburg:需要这样做,另外,我还希望你要处理的大型代码库已经按照一定的模块化结构语义进行了拆分,不管你采用的是OSGi、Maven模块、JBoss模块,还是采用简单的内部规则,将包和接口的结构划分出清晰的边界都可以。
Verburg给出了一些通用的模块化建议,并且指出了开发人员在采用Java 9模块系统时,需要注意的一些事情:
阅读Paul和Sander的图书“Java 9 modularity”:它是本权威指南,提到了所有需要注意的地方,阐述了模块、包以及JAR之间如何运行的关联关系;
在模块边界的地方,使用定义良好的接口并且针对这些接口编程;
不要拆分包(split package),也就是说一个包不要分散到两个模块中。Adopt OpenJDK有个探测工具,我们可以用它来探测已有的代码;
确保不要存在循环依赖(Jigsaw不允许这样);
模块在源码的布局上与我们已习惯的方式有所不同,需要确保构建工具能够进行对应的处理;
Jigsaw不支持多版本。
按照Verburg的说法,核心要点在于处理循环依赖、拆分包的问题,并确保针对接口进行编码。在尝试使用Jigsaw模块化重构之前,针对已有的代码库,这些工作需要预先完成。他还澄清了一个误解,那就是只有模块化的应用才能在Java 9上运行。
由于误解,在这方面有一种FUD(恐惧、不确定和怀疑)情绪,有人误认为在Java 9上运行的必须是模块化的应用。事实并非如此,我们可以将已有的基于类路径的应用直接在Java 9上运行。这里会有一些新的安全限制,因此我们需要设置一些特定的运行时标记(除非你重构代码,使用更安全的方式来访问Java的内部资源),即便如此,默认的行为也只是警告,而不是完全阻止我们(Java 10的限制会更严格)。
Verburg认为Jigsaw会是一个基石,会让Java的演进更快,这要归功于Mark Reinhold、Alan Bateman、Mandy Chung以及Jigsaw团队的其他成员多年来不知疲倦的工作,正是他们的努力使这一切得以实现。
Java 9还引入了jshell工具。这个命令行环境为Java平台带来了读入-求值-打印-循环(Read-Eval-Print-Loop,REPL)功能。它的目的在于以即时结果和反馈的形式,简化原型的实现并帮助我们探索语言在编码时的可选项。
Verburg和Evans看到Java 9中包含了jShell都非常兴奋,但令他们失望的是,HTTP/2只是作为Java 9的一个孵化模块(incubator module)提供的。鉴于社区对这项特性的兴趣和提供的帮助,Evans认为Oracle应该投入足够的工程资源,将HTTP/2交付为GA版本。
下载地址
人气软件
EXT界面图形工具Ext Designer 特别版
Java SE Development Kit(JDK) 17.0.11 官方正式版 Win64
JDK11(Java SE Development Kit 11) v11.0.25 x64 LTS 长期支持
myeclipse2016破解工具 v1.0 破解补丁(附安装教程)
IntelliJ IDEA 2024.3 社区版 官方中文正式版(附汉化包+安装方法
JetBrains Pycharm Pro 2024.3 中文专业免费正式版(附汉化包+安
Zend Studio 10.1.0与10.0.1 破解文件与注册码打包
Python Tutor(代码可视化软件) v1.3.5.16 免费版
php编写工具 PHP Expert Editor v4.2 中文特别版
安卓集成开发工具Android Studio 2024.2.1.11 + SDK 2024.1.09 W
相关文章
-
微软.NET运行时Microsoft .NET Runtime v9.0.0 官方中文免费版 32/64位
Microsoft .NET Runtime 是负责执行和运行基于.NET Framework 开发的应用程序的核心组件。在运行时环境中,.NET Runtime 在计算机上提供必要的支持和服务,使得应用程序能...
-
010 Editor 十六进制编辑器 v15.0.1 简体中文汉化单文件绿色版
010 Editor 是一款专业的文本和十六进制编辑器,其旨在快速轻松地编辑计算机上任何文件的内容,欢迎需要的朋友下载使用...
-
JDK11(Java SE Development Kit 11) v11.0.25 x64 LTS 官方解压绿色版
JDK是一款Java开发工具包,包含Java运行环境(java运行库),Java开发套件和Java基础类库源代码,JDK11是Java开发套件LTS长期支持版本,Java SE订阅者可以在 2032年1月前接受...
-
LINQPad 8(LINQ调试工具) v8.6.4 安装免费版(附安装教程)
LINQPad 8是一款功能强大的 LINQ 调试工具,它为开发者提供了一个方便的环境,用于测试、调试和学习 LINQ 查询以及其他 C# 代码片段...
-
Xterminal(SSH工具) v2.5.0 官方安装版
xTerminal 是一款十分实用的终端仿真器,不仅是强大的SSH工具,还整合了笔记、云端仓库、自动补全、密钥管理、监控工具,快捷动作等功能,欢迎需要的朋友下载使用...
-
web可视化开发工具DecSoft App Builder 2024.55 x64 安装免费版(附授权文件+教程)
Decsoft App Builder是一款使用方便功能强大的web可视化开发工具,Decsoft App Builder(web可视化开发工具)官方版内置html5、webapp、Progressive WebApps,WebExtensions...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的Java Development Kit 9(jdk9.0) linux 64位 官方正式版资源来源互联网,版权归该下载资源的合法拥有者所有。