在 Java 里,**包(Package)和模块(Module,Java 9+)**是两个不同层级的概念,主要区别如下:
包是类和组织代码的命名空间
public、protected、默认、private)示例:
package com.example.util;
public class StringUtils {
}
特点:
模块是比包更高一级的代码组织单位(Java 9 引入)
模块描述文件:module-info.java
module com.example.app {
requires java.sql;
exports com.example.util;
}
含义:
exports 的包,其他模块才能用public 也不能被外部访问| 对比项 | 包(Package) | 模块(Module) |
|---|---|---|
| 引入版本 | Java 1.0 | Java 9 |
| 作用层级 | 类级别 | 多个包级别 |
| 主要目的 | 命名 + 访问控制 | 系统级封装与依赖管理 |
| 是否控制依赖 | ❌ 无 | ✅ 有 |
| 是否控制对外暴露 | 仅靠访问修饰符 | 显式 exports |
| 对应文件 | 目录 | module-info.java |
包解决“类放哪、怎么命名”
模块解决“谁可以用我、我依赖谁”
如果你愿意,我可以:
你想看哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。