Java 9 概述
JAVA 9(又称jdk 1.9)是JAVA编程语言开发的一个重大版本。它的初始版本于2017年9月21日发布。Java 9发布的主要目标如下:
- 将JDK和Java标准版平台模块化,使其可以适用于小型计算设备。
-
提升JDK和Java实现的整体安全性。
-
使Java SE和EE平台的构建过程和维护大型应用程序的代码库更加简单。
-
为Java平台设计和实现一个标准的模块系统,该系统可以轻松应用于平台和JDK。
新特性
Java 9增加了90多个增强功能,其中最重要的如下:
-
模块(Module) − 一种新的Java编程组件,作为模块引入,是一个具有名称和自我描述的代码和数据的集合。
-
REPL (JShell) − 在Java平台中添加了读-评估-打印循环(REPL)的功能。
-
HTTP 2客户端(HTTP 2 Client) − 新的HTTPClient API,支持Websockets、HTTP 2流和服务器推送功能。
-
改进的JavaDocs − 支持HTML5输出生成。提供一个搜索框来生成API文档。
-
多版本JAR(Multirelease JAR) − 增强了JAR格式,使得多个Java版本的类文件可以在一个归档中共存。
-
集合工厂方法(Collection Factory Methods) − 为List、Set和Map接口提供了新的静态工厂方法,用于创建这些集合的不可变实例。
-
私有接口方法(Private Interface Methods) − 增强了接口,使其具有私有和私有静态方法。
-
进程API改进(Process API Improvements) − 改进了控制和管理操作系统进程的API。
-
流API改进(Stream API Improvements) − 通过允许对对象序列化数据的输入流进行过滤,增强了安全性和稳健性。
-
Try With Resources改进 − 现在可以在try-with-resources语句中使用final变量作为资源。
-
@Deprecated注解增强(Enhanced @Deprecated Annotation) − @Deprecated注解进行了修订,提供了有关API状态和意图的更多信息。
-
内部类钻石操作符(Inner Class Diamond Operator) − 如果可以表示推断类型的参数类型,则允许在匿名类中使用钻石操作符。
-
Optional类改进(Optional Class Improvements) − 在java.util.Optional类中添加了一些有用的新方法。
-
多分辨率图像API(Multiresolution Image API) − 支持将具有不同分辨率的一组图像封装为单个多分辨率图像。
-
CompletableFuture API改进(CompletableFuture API improvements) − CompletableFuture类的异步机制可以通过ProcessHandle.onExit方法在进程退出时执行操作。
-
轻量级JSON(Lightweight JSON) − 引入了一个轻量级的API,用于在Java 9中通过json消费和生成文档和数据流。
-
响应式流API(Reactive Streams API) − Java SE 9引入了一个新的响应式流API,以支持在Java 9中进行响应式编程。