众所周知,Java SE 8带有三个重要的新功能,即Lambda Expressions,Stream API和Date API。同样,Java SE 9具有三大功能,即Java模块系统(Jigsaw Project),Java REPL,Milling Project Coin。在这篇文章中,我们将讨论Oracle Jigsaw项目的基础知识。
Jigsaw项目的主要目标:
- 模块化JDK:将JDK本身划分为小模块以获得许多好处。
- 模块化源代码:将Java源代码划分为更小的模块。
- 模块化运行时映像:重构JDK和JRE运行时映像以容纳模块。
- 封装API:默认情况下,大多数JDK的内部API都不可访问,但可以访问一些关键的,广泛使用的内部API。
- Java平台模块系统:允许用户创建其模块以开发其应用程序。
- JLINK - Java链接器:允许用户为其应用程序创建可执行文件。
当前Java系统的问题(Java 8或更早版本)
- 由于JDK太大,缩小到小型设备有点困难。有3种类型的紧凑型材可以解决这个问题:compact1、compact2和compact3,但它并没有解决这个问题。
- rt.jar等JAR文件太大,无法在小型设备和应用程序中使用。
- 由于JDK太大,我们的应用程序或设备无法支持更好的性能。
- 当前Java系统中没有强封装,因为“public”访问修饰符太开放了。每个人都可以访问它。
- 从JDK开始,JRE太大,很难测试和维护应用程序。
- 由于公众过于开放,他们不应该避免访问一些内部非关键API。
- 由于用户也可以访问内部API,安全性也是大事件。
Java SE 9模块系统的优点
- 由于Java SE 9将JDK,JRE,JAR等分成更小的模块,我们可以使用我们想要的任何模块。将Java Application缩小到Small设备非常容易。
- 易于测试和维护。
- 支持更好的性能。
- 由于公众不仅仅是公共的,它支持非常强大的封装。
- 我们不能再访问内部非关键API。
- 模块可以非常安全地隐藏不需要的内部细节,我们可以获得更好的安全性。
- 应用程序太小,因为我们只能使用我们想要的任何模块。
- 支持组件之间的较少耦合很容易。
- 支持单一责任原则(SRP)很容易。