作家
登录

Java9新特性逐项解析,总有一项get到你的点

作者: 来源: 2018-01-21 10:21:18 阅读 我要评论

143: Improve Contended Locking

优化竞争锁的机能

可以或许改良法度榜样运行时的多线程同步效力。

158: Unified JVM Logging

同一 JVM 日记

解决该问题最佳办法:对所有的JVM组件惹人一个单一的体系,这些JVM组件支撑细粒度的和易设备的JVM日记

165: Compiler Control

193: Variable Handles

操作内存,用来替代sun.misc.Unsafe。操作内存更安然,且机能雷同或类似的等效sun.misc.unsafe操作。

在JDK 9中供给了一个新的包,叫做java.lang.invoke琅绫擎有一系列很重要的类比如VarHandler和MethodHandles,供给了类似于原子操作以及Unsafe操作的功能。

197: Segmented Code Cache

262: TIFF Image I/O

代码分段缓存

JDK 9 中的代码段在 Segmented Code Cache 的感化下,可以被加倍细分,并且每个代码段还可以包含特定类型的编译代码,这个功能同样也有望晋升 Java 9 机能。

jdk 9 :javadoc的输出,如今相符兼容HTML 5 标准。

198: Light-Weight JSON API

尽管今朝有多种处理JSON的Java对象(如Google的Gson、阿里巴巴的FastJson、IBM的Json4J等),但JSON API是Java说话的一部分,轻量并且应用了Java 8的新特点。JSON API将放在java.util包里一路宣布,如许,开辟者就可以直接应用JDK而无需再惹人第三方JSON对象包了

智能Java编译对象(sjavac)的第一阶段始于JEP139这个项目, 用于在多核处理器情况下晋升JDK的编译速度。如今,这个项目已经进入第二阶段即JEP199, 其目标是改进Java编译对象,并代替今朝JDK编译对象javac,继而成为Java情况默认的通用的智能编译对象

Java 9的另一个机能晋升来自于JIT(Just-in-time)编译器。当某段代码被大年夜量反复履行的时刻, 虚拟机会把这段代码编译成机械码(native code)并储存在代码缓存琅绫擎, 继而经由过程拜访缓存中不合分段的代率攀来晋升编译器的效力。代码分段缓存机制将会晋升很多方面的机能,如当JVM进行垃圾收受接收扫描的时刻,就可以直接跳过永驻代码,大年夜而晋升效力

200: The Modular JDK

Java 9中最重要的功能,毫无疑问就是模块化(Module),代码名字叫做Jigsaw(拉锯),这个拉锯项目拉了几年,终于要把宏大年夜冗余的Java锯成一个个的Module,便利开辟和安排。熟悉Java的同窗,都知道JRE有一个超等大年夜rt.jar(例如,Java 8的rt.jar中有65M),运行一个hello world,你也须要一个数百兆的JRE情况,如不雅在J2EE情况,情况将变得复杂无比

201: Modular Source Code

211: Elide Deprecation Warnings img_ img_ alt="Java9新特点逐项解析,总有一项get到你的点,先收藏着!" inline="0" />

这是我们在Jshell这个控制台下运行,我们若何运行脚本文件呢?

Java9新特点逐项解析,总有一项get到你的点,先收藏着!

223: New Version-String Scheme

224: HTML5 Javadoc

jdk 8 :生成的java赞助文档是在HTML 4 中,而HTML 4 已经是良久的标准了。

下图是java8 中生成的html页面,如不雅想要找到一些类文档,必须在google中搜刮

Java9新特点逐项解析,总有一项get到你的点,先收藏着!

下图是在java 9 中,添加了一个搜刮框。

Java9新特点逐项解析,总有一项get到你的点,先收藏着!

225: Javadoc Search

226: UTF-8 Property Files

属性文件支撑 UTF-8 编码

ResourceBundle 的缺省编码问题一向是被吐槽的对象,非英文字符被转码为看不懂的情势,严重伤害了代码的可读性。大年夜 Java 9 开端,ResourceBundle 默认编码为 UTF-8。

227: Unicode 7.0

JDK9进级现有的平台APIs以支撑Unicode标准的7.0版,支撑Unicode的最新版本。

日记是解决问题的独一有效门路:曾经很难知道导致JVM机能问题和导致JVM崩溃的根来源基本因。不合的JVM日记的碎片化和日记选项(例如:JVM组件对于日记应用的是不合的机制和规矩),这使得JVM难以进行调试。

228: Add More Diagnostic Commands

229: Create PKCS12 Keystores by Default

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

JDK 9 中附带了一个 Nashorn 的 parser API,它的目标是 Java 在本地 JVM 中实现轻量级高机能 JS runtime。这个新特点可以保障 Java 9 更好的融合 JavaScript 和 Java 的两方之力。

237: Linux/AArch64 Port

连接到Linux / AArch64的端口。

AArch64是ARM控股公司推出的新处理器体系构造。它与32位ARM处理器架构不合,实际上是一个完全的从新设计。它须要一个新的OpenJDK端口

238: Multi-Release JAR Files

类的功能也被加强了。

当一个新版本的Java出现的时刻,你的库用户要花费数年时光才会切换到这个新的版本。这就意味着库得去向后兼容你想要支撑的最老的Java版本(很多情况下就是Java 6 或者 Java7)。这实际上意味着将来的很长一段时光,你都不克不及在库中应用Java 9所供给的新特点。荣幸的是,多版本兼容jar功能能让你创建仅在特定版本的Java情况中运行库法度榜样选择应用的class版本。

240: Remove the JVM TI hprof Agent

今朝,零端口可用于在Linux / s390x上运行JDK,但速度很慢(因为它只应用旧的、弃用的c++说冥器),并且测试不太好。它不是运行应用法度榜样办事器或用Java编写的数据库应用法度榜样等工作负载的┞锋正替代筹划。


  推荐阅读

  标准化引领发展 工业云应用步入实践落地期

【51CTO.com原创稿件】由中国电子技巧标准化研究院主办、51CTO承办的“第七届中国云计算标准和应用大年夜会”于2018年1月4日至1月5日在北京成功召开。本次大年夜会周全展示我国云计算国度标准>>>详细阅读


本文标题:Java9新特性逐项解析,总有一项get到你的点

地址:http://www.17bianji.com/lsqh/40396.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)