什么是Java 9中的Project Jigsaw?
Jigsaw项目的主要目标是引入模块化概念,以Java9创建模块,然后将其应用于JDK。
以下是模块化(拼图)的一些好处
强大的封装能力:这些模块只能访问那些可以使用的部件。除非将包显式导出到 module-info.java文件中,否则包中的公共类不能是公共的。
明确的依赖关系:一个模块必须声明有关通过必需子句使用的其他模块的信息。组合模块以创建较短的运行时间,可以将其轻松扩展到相对较小的计算设备。
可靠:消除运行时错误后,该应用程序将变得更加可靠。例如,我们必须注意到,由于缺少导致ClassNotFoundException的类,我们的应用程序在运行时会失败。
以下是作为Jigsaw 项目一部分的各种JEP(JDK增强建议)
JEP200–模块化JDK:它利用Java平台模块系统(JPMS)将JDK模块化为一组在构建时,编译时或运行时结合在一起的模块。
JEP201 –模块化源代码:它将JDK的源代码模块化为模块,并升级内置工具以编译模块。
JEP220–模块化运行时映像:它有助于重组JRE和JDK运行时映像,以容纳用于提高安全性,性能和可维护性的模块 。
JEP260–封装了大多数内部API:它允许直接访问或通过反射访问大多数内部API。访问将要更改的内部API的风险很大。为防止使用此功能,将其压缩到模块中,并且只有那些内部API可供使用。
JEP261–模块系统:它负责通过更改JVM,Java编程语言和其他标准API来实现模块系统Java规范。
JEP282-Jlink,Java链接器:它允许将模块及其依赖性打包到较小的运行时中。