文章永久连接:https://tech.souyunku.com/2326
Java 9 ( 又称为 jdk 1.9
) 是 Java 编程语言开发的主要版本。它的初始版本于 2017 年 9 月21 日发布
按照今天的日期,也就是差不多一年前吧,但是,要知道,Java 10 都已经出来了…. 残废的 Java 9 ,大家还没用上,就开始过时了。
Java 9 的目标
Java 9 版本的主要目标是
1、模块化 JDK 和 Java 标准版 ( Java Standard Edition ) ,使得 Java 可以用在小型计算设备中
今天,我才牢牢记住了 Java SE 的全称,竟然是 Java Standard Edition
2、提高 JDK 和 Java 实现的整体安全性
3、简化 JAVA SE 和 Java EE 平台上的 Java 代码库和大型应用程序的构建和维护过程
4、设计和实现能够应用于 Java Platform 和 Java JDK 上的标准模块系统
其实看这几个主要目标,Java 9 的最大的变更应该就是开始模块化…,
这也导致了 Java 9 不突出的原因吧。毕竟 Java 开发人员日常使用 Java 9 的过程中,对模块化并没有明显的感知
Java 9 新特性
Java 9 在以上 4 个目标的基础上做了大量的工作,可以对外称道的应该有 90+ 个,但是,大部分都是小修小改,不足道也。
我们就介绍几个比较大一点的特性吧
1、模块化 ( Module )
这是首当其中的特性。毕竟这么大的版本,目标只是它。
Java 中的模块 ( Module ) 是一种新的 Java 编程组件 ( Component ) ,是一个命名的 ( named ),自描述的代码和数据集合
2、REPL ( JShell )
REPL ,全称 Read Eval Print Loop ,中文 「 交互式解释器 」
这对于我们 Java 开发者来说,应该是 Java 9 带来的最大的个性吧。我们终于可以像 Python 、 Ruby 和 Node.js 那样在 Shell 可见即可得的运行一些范例代码了
3、HTTP/2 客户端
HTTP/2 大行其道的今天,Java 开发者终于可以用上原生的 HTTP/2 Java 客户端了。
新的 HTTPClient API 支持 WebSockets 和 HTTP/2 Stream 以及服务器推送功能
4、增强 JavaDocs
生成输出支持 HTML5 ,同时为生成的 API 文档提供搜索功能
5、增强 JAR – 多 Java 版本的 JAR 支持
增强 JAR 格式,使得可以在单个 JAR 存档中同时存在多个特定于 Java 发行版的类文件
6、集合工厂方法
为 List
、 Set
和 Map
等结构添加了新的静态工厂方法,用于创建这些集合的不可变实例。
7、接口允许私有方法 ( private methods )
增强了接口 ( interface ) 功能,可以在接口中包含私有的成员方法和私有的静态方法
8、改进 Process API
改进 API 来控制和管理操作系统进程
9、改进流 ( Stream ) API
为了增强了安全性和健壮性 , 对象数据序列化时允许对输入的流进行过滤
10、 try-with-resources 语句改进
允许在 try-with-resources
语句中为资源定义一个最终变量 ( finall )
11、 增强 @Deprecated
注解
修改 @Deprecated
注释,可以提供有关 API 状态和预期处置的更多信息
12、 内部类允许使用 「 钻石操作符 」 ( <>
)
在匿名类中,如果参数的类型是可推断的,那么就允许使用 「 钻石操作符 」 <>
13、 改进 Optional
类
为 java.util.Optional
类添加了新的有用方法
14、 多分辨率 ( Multiresolution ) 图像 API
支持将具有不同分辨率的一组图像封装成单个多分辨率图像
15、 CompletableFuture
API 改进
使用 ProcessHandle.onExit
方法退出进程时,CompletableFuture
类的异步机制可以执行一些操作 ( Action )
16、 轻量级的 JSON
Java 9 中引入了一个轻量级的 JSON API 用于编码和解码文档和数据流 ( data stream ) 为 JSON 格式
17、 响应式流 ( Reactive Streams ) API 支持
为了支持 Java 9 的响应式编程,Java SE 9 版本中引入了一个新的响应式流 ( Reactive Streams ) API
干货推荐
附录:Java 9 新特性 系列文章
- 一、Java 9 新特性 – 介绍
- 二、Java 9 新特性 – 特性简介
- 三、Java 9 新特性 – 环境配置
- 四、Java 9 新特性 – 模块化
- 五、Java 9 新特性 – REPL ( JShell )
- 六、Java 9 新特性 – 改进 JavaDocs
- 七、Java 9 新特性 – 多版本共存 JAR
- 八、Java 9 新特性 – 集合不可变实例工厂方法
- 九、Java 9 新特性 – 接口 ( interface ) 的私有方法
- 十、Java 9 新特性 – 改进进程管理 API
- 十一、Java 9 新特性 – 增强流 ( Stream ) API
- 十二、Java 9 新特性 – try-with-resources 语句
- 十三、Java 9 新特性 – 增强 @Deprecated 注解
- 十四、Java 9 新特性 – 内部类的方块操作符
- 十五、Java 9 新特性 – Option 类
- 十六、Java 9 新特性 – 多分辨率图像 API
- 十七、Java 9 新特性 – CompletableFuture API ( 上 )
- 十八、Java 9 新特性 – CompletableFuture API ( 中 )
- 十九、Java 9 新特性 – CompletableFuture API ( 下 )
- 二十、Java 9 新特性 – 其它特性