温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java模块有何作用

发布时间:2026-09-19 04:54:14 来源:亿速云 阅读:103 作者:小樊 栏目:编程语言

在 Java 里,“模块(Module)”通常指 Java 9 引入的 Java Platform Module System(JPMS,Java 平台模块系统) 中的概念(对应 module-info.java)。它的作用主要有以下几方面:


一、什么是 Java 模块

模块是比包(package)更大一级的代码组织单位,用来把相关的包、类、资源封装成一个整体,并明确声明:

  • 自己导出哪些包
  • 自己依赖哪些模块

示例:

module com.example.app {
    requires java.sql;
    exports com.example.app.api;
}

二、Java 模块的主要作用

1. 强封装(Strong Encapsulation)

  • 只有 exports 的包才能被其他模块访问
  • 未导出的包,即使是 public 类,也不能被外部模块使用

✅ 好处:

  • 隐藏内部实现
  • 防止误用 API
  • 提高安全性

2. 明确的依赖关系(Explicit Dependencies)

  • 模块必须显式声明 requires
  • 编译期和运行期都能检查依赖是否缺失

✅ 好处:

  • 避免“ClassNotFoundException”
  • 依赖关系清晰可读

3. 解决“类路径地狱(Classpath Hell)”

传统类路径问题:

  • 同名类冲突
  • 不确定类从哪里加载

模块系统:

  • 每个模块名唯一
  • 类加载更可控

4. 更小的运行时(适合微服务 / 容器)

通过模块裁剪:

jlink

可以生成只包含需要模块的 JVM

✅ 好处:

  • 镜像更小
  • 启动更快
  • 适合 Docker、云原生

5. 提高可维护性

  • 系统被拆成清晰边界
  • 适合大型项目、框架、平台级开发

三、模块 vs 包 vs Jar

概念 作用层级
类 最小单位
包 逻辑分组
Jar 物理打包
模块 系统级边界

四、不是所有项目都必须用模块

✅ 适合:

  • JDK 内部
  • 大型框架(Spring、Hibernate 已支持)
  • 平台级 / 长期维护系统

❌ 不一定需要:

  • 小型项目
  • 普通 Web 应用(仍可用 classpath)

五、一句话总结

Java 模块的作用是:让 Java 程序在依赖、封装和体积上更可控、更安全、更适合现代软件架构。

如果你愿意,我也可以讲:

  • module-info.java 写法
  • 模块 vs Spring Boot
  • 老项目如何迁移到模块
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手