模块系统:为什么Java需要模块化

109 阅读1分钟

Java 语言访问修饰符的控制区域:

image.png

两个包之间,没有一个定向的私密通道。换句话说,JDK 9 之前的 Java 语言没有描述和定义包之间的依赖关系,也没有描述和定义基于包的依赖关系的访问控制规则。 这是一个缺失的访问控制。

在 JDK 里,以 java 或者 javax 命名开头的 Java 包,是公开的接口;其他的包是内部的接口。按照 Java 接口的使用规范,一个开发者应该只使用公开的接口,而不能使用内部的接口。

总体来说,Java 语言没有描述和定义包之间的依赖关系。这个缺失,导致了无法有效地封闭实现的细节;无法有效地管理应用的部署;无法精准地控制类的检索和加载,也影响了应用启动的效率。


此文章为9月Day19学习笔记,内容来源于极客时间《深入剖析 Java 新特性》