您的位置:首页 > 编程语言 > Java开发

Java 9 你需要知道的新特性

2018-03-19 15:57 260 查看
Java 9终于发布了,Java 开发工具包(JDK) 也已经可供开发者下载。  Java 9 终于有了 REPLJava 9 的另一个特性是拥有了 REPL(read-eval-print loop)工具,这是另一个 Java 的长期目标,在 Kulia 项目中经过多年研发后终于在 Java 9 中得以实现。Java 9 的 REPL 名为 jShell,以交互式的方式对语句和表达式进行求值。开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。命令行工具的功能包含 tab 自动补全和自动添加分号。jShell API 支持在 IDE 和其他工具中使用 jShell 功能,虽然这个工具本身不是 IDE。REPL 的缺失是高校想要把 Java 从学校课程中剔除的一个原因(像 Python 和 Scala 之类的语言早就有 REPL 了)。但 Scala 语言的创始人 Martin Odersky 质疑 Java 中 REPL 的作用,他说 Java 是面向语句的,而 REPL 是面向表达式的。Java 9 引入 HTTP/2 客户端 APIJava 9 引入了 beta 版的 HTTP/2 客户端 API,升级了Web 核心 HTTP 协议,这个 API 同时也支持 WebSocket。HTTP/2 API 可以用来代替HttpURLConnection API,后者存在一些缺点,包括当初是为现在已经失效的协议所设计,早于HTTP/1,接口定义太抽象以及使用起来不容易。Java 9 改进了对 HTML5和 Unicode 的支持在 JDK 9 中,Javadoc 文档工具经过增强现在支持生成 HTML5 标记文档。Unicode 8.0 编码标准也得到支持,该标准新增 8000 个字符,10 个块和 6 个脚本。Java 9 新增 DTLS 安全 API为了安全,Java 9 新增支持 DTLS(Datagram Transport Layer Security)的 API。这个协议用来在客户端服务器通信中防止窃听,篡改,消息伪造等。客户端和服务端模式都提供了实现。Java 9 增强了 SteamAPI Java 的 Steam 让开发者能够快速运算,从而能够有效的利用数据并行计算。Java 8 提供的 Steam 能力能够利用多核架构实现声明式的数据处理。在 Java 9 中,Stream API 通过新增方法,实现有限制的从 Stream 中添加或者移除元素,遍历 Stream 中的元素,以及通过扩展 Java SE API 集合实现从空值创建流的功能。Java 9 支持代码缓存的分割JDK 9 支持将代码缓存分割成段,从而提高性能并实现扩展功能,例如细粒度锁。由于使用专门的迭代器忽略非方法代码,分离非方法,剖析和非剖析代码,结果扫描时间将得到改进。某些基准的执行时间也得到改进。  Java 9 中还有很多承上启下的特性,为未来创新打下基础或者整合、规范现有碎片化的功能,我会介绍一些有代表性的新特性。在 Java 虚拟机领域,JEP 271:Unified GC Logging 和 JEP 158:UnifiedJVM Logging,对各种 JVM 日志进行了统一,大家终于不用为各种碎片化的日志选项苦恼了。在JDK 9 中, AOT(JEP 295: Ahead-of-TimeCompilation)作为实验特性被引入进来,开发者可以利用新的 jaotc 工具将重点代码转换成类似类库一样的文件,这样会大大降低启动开销。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java