Java 9发布了哪些新特性/功能?
Java 9是在2017年发布的,其主要功能和特性包括:
它是一个交互式编程工具,可以让我们在命令行中以交互式的形式编写和执行Java代码。
Java 9 引入模块系统,一是用于拆分现有JDK和JRE的自带库,比如说rt.jar多达几十M,如果能够模块化拆分,就可以按需引入。二是可以更加细化访问权限,比如有两个模块,service和main,service模块下的InternalClass
是public的,对模块内部所有的类都可见,但是不想让外部依赖它的项目可见,我们可以通过模块系统来实现。
目录结构如上,service模块只导出com.zhixing.service包,也就是说其它依赖service模块的只能访问这个包下面的类,不包括子包,它的module-info.java
如下:
main模块直接引入service模块即可,它可以访问service模块的Service类,但是不能访问InternalClass类。它的module-info.java
如下:
新增了一些方便创建不可变的List,Set和Map的接口。
在Java 8 中,我们可以给接口定义default方法,在Java 9 中可以给接口定义私有private方法。
以上只是Java 9发布的部分特性和功能,完整的特性可参考官方文档
内容