温馨提示×

温馨提示×

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

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

java模块怎么学习

发布时间:2026-09-19 05:36:21 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

学习 Java 模块化(Java Module System,即 JPMS,从 Java 9 引入),建议按“概念 → 语法 → 实战 → 工程化”的路线来。下面给你一套比较清晰的学习路径。


一、先搞清楚:为什么需要模块

在 Java 9 之前:

  • 用 package + classpath 管理代码
  • 问题:
    • 强封装做不到(public 就能被随便用)
    • 容易 classpath 冲突(Jar Hell)
    • JDK 本身太大、太乱

Java 模块解决:

  • 强封装(只暴露想暴露的)
  • 显式依赖
  • 更好的可维护性和安全性

二、核心概念(必须理解)

1. 什么是模块

一个模块 = 一组包 + module-info.java

my.module/
 ├── module-info.java
 └── com/example/MyClass.java

2. module-info.java 是什么

模块的“说明书”

module com.example.myapp {
    requires java.base;
    exports com.example.api;
}

3. 关键指令

  • requires:依赖其他模块
  • exports:导出包(别人才能用)
  • opens:运行时反射开放
  • provides ... with:服务注册
  • uses:使用服务

三、最小可运行示例(非常重要)

1. 目录结构

hello/
 ├── module-info.java
 └── com/example/Main.java

2. module-info.java

module com.example.hello {
    exports com.example;
}

3. Main.java

package com.example;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello Module");
    }
}

4. 编译运行

javac -d out $(find . -name "*.java")
java --module-path out --module com.example.hello/com.example.Main

四、多模块项目怎么学

示例结构

project/
 ├── app/
 │   ├── module-info.java
 │   └── com/app/Main.java
 └── service/
     ├── module-info.java
     └── com/service/HelloService.java

service 模块

module com.example.service {
    exports com.service;
}

app 模块

module com.example.app {
    requires com.example.service;
}

⚠️ 不 requires 就不能用
⚠️ 不 exports 就不能访问


五、常见难点(重点突破)

1. 反射和模块冲突

  • 普通 exports 不够
  • 需要:
opens com.example.internal;

2. 第三方库不支持模块

两种方案:

  • 当“自动模块”用(把 jar 放 module-path)
  • 用 MANIFEST.MF 加 Automatic-Module-Name

3. Spring / Maven 是否要用模块

  • 不一定
  • 企业项目常用:
    • Maven 多模块(不是 JPMS)
    • JPMS 更适合:
      • 框架
      • SDK
      • 工具库

六、推荐学习顺序

  1. ✅ Java 基础扎实(包、访问修饰符)
  2. ✅ 写 1–2 个单模块例子
  3. ✅ 写多模块例子
  4. ✅ 学 requires / exports / opens
  5. ✅ 学 ServiceLoader(模块服务)
  6. ✅ 看 JDK 自带模块(java.base 等)

七、学习资源推荐

官方

  • Oracle Java Modules 文档
  • java --describe-module java.base

书

  • 《Java 9 Modularity》
  • 《Core Java》(第 11+ 版)

视频

  • B 站搜「Java 模块系统」
  • Java Official YouTube

八、如果你愿意,我可以继续帮你

你可以告诉我:

  • 你现在是 Java 几?
  • 是 学生 / 工作 / 面试?
  • 想学 基础语法 还是 真实项目用法?

我可以直接给你:

  • 练习题目
  • Maven + 模块示例
  • 常见报错解决方案
向AI问一下细节

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

AI
助
手