Java JDK 包结构与内容简介

可能在平时开发中,基本都是使用一些常用的集合或工具类库,对于 JDK 的整体结构不会了解太多,除非特意去看,这里简单介绍一下 JDK 的包结构。

JDK 文档地址:Oracle JDK version 22open in new window

结构简介

Java SE 包功能一览表

包名作用
java.base定义 Java SE 平台的基础 API。
java.compiler定义语言模型、注解处理和 Java 编译器 API。
java.datatransfer定义用于在应用程序之间以及应用程序内部传输数据的 API。
java.desktop定义 AWT 和 Swing 用户界面工具包,以及用于辅助功能、音频、图像、打印和 JavaBeans 的 API。
java.instrument定义允许代理检测 JVM 上运行的程序的服务。
java.logging定义 Java 日志 API。
java.management定义 Java 管理扩展 (JMX) API。
java.management.rmi定义用于 Java 管理扩展 (JMX) 远程 API 的 RMI 连接器。
java.naming定义 Java 命名和目录接口 (JNDI) API。
java.net.http定义 HTTP 客户端和 WebSocket API。
java.prefs定义首选项 API。
java.rmi定义远程方法调用 (RMI) API。
java.scripting定义脚本 API。
java.se定义 Java SE 平台的 API。
java.security.jgss定义 IETF 通用安全服务 API (GSS-API) 的 Java 绑定。
java.security.sasl定义 IETF 简单身份验证和安全层 (SASL) 的 Java 支持。
java.smartcardio定义 Java 智能卡 I/O API。
java.sql定义 JDBC API。
java.sql.rowset定义 JDBC RowSet API。
java.transaction.xa定义用于在 JDBC 中支持分布式事务的 API。
java.xml定义用于 XML 处理的 Java API (JAXP)。
java.xml.crypto定义用于 XML 密码学的 API。

JDK 包功能一览表

包名作用
jdk.accessibility定义由辅助技术实现者使用的 JDK 实用程序类。
jdk.attach定义附加 API。
jdk.charsets提供 java.base 中不存在的字符集(主要是双字节和 IBM 字符集)。
jdk.compiler定义系统 Java 编译器的实现及其命令行等效项 javac。
jdk.crypto.cryptoki提供 SunPKCS11 安全提供程序的实现。
jdk.dynalink定义用于对对象上的高级操作进行动态链接的 API。
jdk.editpad提供 jdk.jshell 使用的编辑板服务的实现。
jdk.hotspot.agent定义 HotSpot 可服务性代理的实现。
jdk.httpserver定义特定于 JDK 的 HTTP 服务器 API,并提供用于运行最小 HTTP 服务器的 jwebserver 工具。
jdk.incubator.vector定义用于表达可以在运行时可靠地编译为 SIMD 指令(例如 x64 上的 AVX 指令和 AArch64 上的 NEON 指令)的计算的 API。
jdk.jartool定义用于操作 Java 归档 (JAR) 文件的工具,包括 jar 和 jarsigner 工具。
jdk.javadoc定义系统文档工具的实现及其命令行等效项 javadoc。
jdk.jcmd定义用于诊断和排除 JVM 故障的工具,例如 jcmd、jps、jstat 工具。
jdk.jconsole定义用于监视和管理正在运行的应用程序的 JMX 图形工具 jconsole。
jdk.jdeps定义用于分析 Java 库和程序中的依赖项的工具,包括 jdeps、javap 和 jdeprscan 工具。
jdk.jdi定义 Java 调试接口。
jdk.jdwp.agent提供 Java 调试线协议 (JDWP) 代理的实现。
jdk.jfr定义 JDK Flight Recorder 的 API。
jdk.jlink定义用于创建运行时映像的 jlink 工具、用于创建和操作 JMOD 文件的 jmod 工具,以及用于检查 JDK 实现特定的类和资源容器文件的 jimage 工具。
jdk.jpackage定义 Java 打包工具 jpackage。
jdk.jshell提供用于评估 Java 代码片段的 jshell 工具,并定义用于建模和执行片段的特定于 JDK 的 API。
jdk.jsobject定义 JavaScript 对象的 API。
jdk.jstatd定义 jstatd 工具,用于启动守护程序以使 jstat 工具能够远程监视 JVM 统计信息。
jdk.localedata提供除美国语言环境之外的语言环境的语言环境数据。
jdk.management定义用于 JVM 的特定于 JDK 的管理接口。
jdk.management.agent定义 JMX 管理代理。
jdk.management.jfr定义 JDK Flight Recorder 的管理接口。
jdk.naming.dns提供 DNS Java 命名提供程序的实现。
jdk.naming.rmi提供 RMI Java 命名提供程序的实现。
jdk.net定义特定于 JDK 的网络 API。
jdk.nio.mapmode定义特定于 JDK 的文件映射模式。
jdk.sctp定义特定于 JDK 的 SCTP API。
jdk.security.auth提供 javax.security.auth.* 接口和各种身份验证模块的实现。
jdk.security.jgss定义 GSS-API 的 JDK 扩展和 SASL GSSAPI 机制的实现。
jdk.xml.dom定义 W3C 文档对象模型 (DOM) API 的子集,该子集不是 Java SE API 的一部分。
jdk.zipfs提供 Zip 文件系统提供程序的实现。

java.base 包内容介绍

我们在开发中,最常用的就是 java.base 包,集合、工具类、常用对象、多线程都在这里。

包名作用
java.io提供通过数据流、序列化和文件系统进行系统输入和输出的类。
java.lang提供 Java 编程语言设计基础的类。
java.lang.annotation为 Java 编程语言注解功能提供库支持。
java.lang.classfilePREVIEW预览版: 提供类文件解析、生成和转换库。
java.lang.classfile.attributePREVIEW预览版: 为 java.lang.classfilePREVIEW 库提供描述类文件属性的接口。
java.lang.classfile.componentsPREVIEW预览版: 提供在 java.lang.classfilePREVIEW 库之上构建的特定组件、转换和工具。
java.lang.classfile.constantpoolPREVIEW预览版: 为 java.lang.classfilePREVIEW 库提供描述类文件常量池条目的接口。
java.lang.classfile.instructionPREVIEW预览版: 为 java.lang.classfilePREVIEW 库提供描述代码指令的接口。
java.lang.constant用于表示运行时实体(如类或方法句柄)和类文件实体(如常量池条目或 invokedynamic 调用点)的名义描述符的类和接口。
java.lang.foreign提供对 Java 运行时外部的内存和函数的低级访问。
java.lang.invokejava.lang.invoke 包提供了与 Java 虚拟机交互的低级原语。
java.lang.module支持模块描述符并通过解析和服务绑定创建模块配置的类。
java.lang.ref提供引用对象类,这些类支持与垃圾回收器进行有限程度的交互。
java.lang.reflect提供用于获取有关类和对象的反射信息的类和接口。
java.lang.runtimejava.lang.runtime 包为 Java 语言提供低级运行时支持。
java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度十进制算法 (BigDecimal) 的类。
java.net提供用于实现网络应用程序的类。
java.net.spijava.net 包的服务提供程序类。
java.nio定义缓冲区(数据容器),并概述其他 NIO 包。
java.nio.channels定义通道(表示与能够执行 I/O 操作的实体(如文件和套接字)的连接); 定义选择器,用于多路复用、非阻塞 I/O 操作。
java.nio.channels.spijava.nio.channels 包的服务提供程序类。
java.nio.charset定义字符集、解码器和编码器,用于在字节和 Unicode 字符之间进行转换。
java.nio.charset.spijava.nio.charset 包的服务提供程序类。
java.nio.file定义 Java 虚拟机用于访问文件、文件属性和文件系统的接口和类。
java.nio.file.attribute提供对文件和文件系统属性的访问的接口和类。
java.nio.file.spijava.nio.file 包的服务提供程序类。
java.security提供用于安全框架的类和接口。
java.security.cert提供用于解析和管理证书、证书撤销列表 (CRL) 和证书路径的类和接口。
java.security.interfaces提供用于生成 RSA(Rivest、Shamir 和 Adleman 非对称密码算法)密钥(如 RSA 实验室技术说明 PKCS#1 中定义)和 DSA(数字签名算法)密钥(如 NIST 的 FIPS-186 中定义)的接口。
java.security.spec提供用于密钥规范和算法参数规范的类和接口。
java.text提供以独立于自然语言的方式处理文本、日期、数字和消息的类和接口。
java.text.spijava.text 包中类的服务提供程序类。
java.time用于日期、时间、时刻和持续时间的主要 API。
java.time.chrono适用于默认 ISO 以外的日历系统的通用 API。
java.time.format提供用于打印和解析日期和时间的类。
java.time.temporal使用字段和单位以及日期时间调整器访问日期和时间。
java.time.zone支持时区及其规则。
java.util包含集合框架、一些国际化支持类、服务加载器、属性、随机数生成、字符串解析和扫描类、base64 编码和解码、位数组以及几个其他杂项实用程序类。
java.util.concurrent并发编程中常用的实用程序类。
java.util.concurrent.atomic支持对单个变量进行无锁线程安全编程的一小组类。
java.util.concurrent.locks提供用于锁定和等待条件的框架的接口和类,该框架不同于内置同步和监视器。
java.util.function函数式接口为 lambda 表达式和方法引用提供目标类型。
java.util.jar提供用于读取和写入 JAR(Java 归档)文件格式的类,该格式基于标准 ZIP 文件格式,并带有一个可选的清单文件。
java.util.random此包包含支持随机数生成的通用 API 的类和接口。
java.util.regex用于将字符序列与正则表达式指定的模式进行匹配的类。
java.util.spijava.util 包中类的服务提供程序类。
java.util.stream支持对元素流进行函数式操作的类,例如对集合进行 map-reduce 转换。
java.util.zip提供用于读取和写入标准 ZIP 和 GZIP 文件格式的类。
javax.crypto提供用于加密操作的类和接口。
javax.crypto.interfaces为 Diffie-Hellman 密钥提供接口,如 RSA 实验室的 PKCS #3 中定义。
javax.crypto.spec提供用于密钥规范和算法参数规范的类和接口。
javax.net提供用于网络应用程序的类。
javax.net.ssl提供用于安全套接字包的类。
javax.security.auth此包提供用于身份验证和授权的框架。
javax.security.auth.callback此包提供服务与应用程序交互以检索信息(例如,包括用户名或密码的身份验证数据)或显示信息(例如,错误和警告消息)所需的类。
javax.security.auth.login此包提供可插拔身份验证框架。
javax.security.auth.spi此包提供用于实现可插拔身份验证模块的接口。
javax.security.auth.x500此包包含应使用其在 Subject 中存储 X500 Principal 和 X500 私钥凭据的类。
javax.security.cert提供用于公钥证书的类。

其中就有很熟悉的lang包、util包、juc包等。

Last Updated:
Contributors: gclhaha