Java 9中引入的模块系统,正式称为Java平台模块系统(JPMS),是自Java诞生以来的一个极重要的新软件工程技术。这个系统也被称为Jigsaw项目。它作为包(package)之上的一个新的抽象级别被引入,帮助开发人员在不同的应用程序之间更好地划分界限和共享资源。
在模块系统中,代码和数据被封装在所谓的“模块”中。每个模块由一个或者多个Java包组成,而模块内的代码则包括Java类和接口;模块的数据主要包括资源文件和其他静态信息。这样的设计让模块系统的工件(artifact)的根目录中包含了一个module-info.class文件,其中指定了模块的名称、所依赖的其他模块以及导出的公共API等重要信息。
这个新特性对于Java开发者来说有许多优点。首先,它可以帮助构建、维护和改进大型系统时提高工作效率。其次,由于模块系统将相关的代码和数据组织在一起,因此它可以更好地控制访问权限,提高应用程序的安全性。最后,模块系统还能减少命名冲突和类型模糊问题,使得代码更易读、更易维护。