概述

Java采用包结构来组织和管理类和接口文件。本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的。若是离开它,还真不能做事情了。

第一个包:java.lang包。

  • 阿情说:该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握,因为它们应用很广。

第二个包:java.util包。

  • 阿情说:该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

第三个包:java.io包。

  • 阿情说:该包通过文件系统、数据流和序列化提供系统的输入与输出。

第四个包:java.net包。

  • 阿情说:该包提供实现网络应用与开发的类。

第五个包:java.sql包。

  • 阿情说:该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。

第六个包:java.awt包

第七个包:javax.swing包。

  • 阿情说:这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。

第八个包:java.text包。

  • 阿情说:提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。

  • 关于上述这些包结构,除了第一个包是自动导入外,其余的包都需要使用import语句导入,才可使用其包里面的类与接口。若想深入了解它们,请多阅读JDKAPI文档,同时,多使用这些包里的类与接口来解决问题和满足需求。

总结

  1. Java语言采用包结构组织和管理类与接口,避免命名冲突,结构富有条理而清晰。

  2. 关注上述常用包,实则是掌握这些包结构下的类与接口的应用。利用它们,加上创意,设计和造就一个个“产品”。

详细说明

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
java.applet
提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类
java.awt
包含用于创建用户界面和绘制图形图像的所有类
java.awt.color
提供用于颜色空间的类 
java.awt.datatransfer
提供在应用程序之间和在应用程序内部传输数据的接口和类
java.awt.dnd
Drag  Drop 是一种直接操作动作在许多图形用户界面系统中都会遇到它它提供了一种机制能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息
java.awt.event
提供处理由 AWT 组件所激发的各类事件的接口和类
java.awt.font
提供与字体相关的类和接口
java.awt.geom
提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 
java.awt.im
提供输入方法框架所需的类和接口
java.awt.im.spi
提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口
java.awt.image
提供创建和修改图像的各种类
java.awt.image.renderable
提供用于生成与呈现无关的图像的类和接口
java.awt.print
为通用的打印 API 提供类和接口
java.beans
包含与开发 beans 有关的类即基于 JavaBeansTM 架构的组件
java.beans.beancontext
提供与 bean 上下文有关的类和接口
java.io
通过数据流序列化和文件系统提供系统输入和输出
java.lang
提供利用 Java 编程语言进行程序设计的基础类
java.lang.annotation
 Java 编程语言注释设施提供库支持
java.lang.instrument
提供允许 Java 编程语言代理检测运行在 JVM 上的程序的服务
java.lang.management
提供管理接口用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统
java.lang.ref
提供了引用对象类支持在某种程度上与垃圾回收器之间的交互
java.lang.reflect
提供类和接口以获得关于类和对象的反射信息
java.math
提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类 
java.net
为实现网络应用程序提供类
java.nio
定义作为数据容器的缓冲区并提供其他 NIO 包的概述
java.nio.channels
定义了各种通道这些通道表示到能够执行 I/O 操作的实体如文件和套接字的连接定义了用于多路复用的非阻塞 I/O 操作的选择器
java.nio.channels.spi
用于 java.nio.channels 包的服务提供者类
java.nio.charset
定义用来在字节和 Unicode 字符之间转换的 charset解码器和编码器
java.nio.charset.spi
java.nio.charset 包的服务提供者类
java.rmi
提供 RMI 
java.rmi.activation
 RMI 对象激活提供支持
java.rmi.dgc
 RMI 分布式垃圾回收提供了类和接口
java.rmi.registry
提供 RMI 注册表的一个类和两个接口
java.rmi.server
提供支持服务器端 RMI 的类和接口 
java.security
为安全框架提供类和接口
java.security.acl
此包中的类和接口已经被 java.security 包中的类取代
java.security.cert
提供用于解析和管理证书证书撤消列表 (CRL) 和证书路径的类和接口
java.security.interfaces
提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSARivestShamir  Adleman AsymmetricCipher 算法密钥以及 NIST  FIPS-186 中定义的 DSA数字签名算法密钥
java.security.spec
提供密钥规范和算法参数规范的类和接口
java.sql
提供使用 JavaTM 编程语言访问并处理存储在数据源通常是一个关系数据库中的数据的 API
java.text
提供以与自然语言无关的方式来处理文本日期数字和消息的类和接口
java.text.spi
java.text 包中类的服务提供者类 
java.util
包含 collection 框架遗留的 collection 事件模型日期和时间设施国际化和各种实用工具类字符串标记生成器随机数生成器和位数组)。
java.util.concurrent
在并发编程中很常用的实用工具类 
java.util.concurrent.atomic
类的小工具包支持在单个变量上解除锁的线程安全编程
java.util.concurrent.locks
为锁和等待条件提供一个框架的接口和类它不同于内置同步和监视器 
java.util.jar
提供读写 JAR (Java ARchive) 文件格式的类该格式基于具有可选清单文件的标准 ZIP 文件格式
java.util.logging
提供 JavaTM 2 平台核心日志工具的类和接口
java.util.prefs
此包允许应用程序存储并获取用户和系统首选项和配置数据
java.util.regex
用于匹配字符序列与正则表达式指定模式的类
java.util.spi
java.util 包中类的服务提供者类
java.util.zip
提供用于读写标准 ZIP  GZIP 文件格式的类
javax.accessibility
定义了用户界面组件与提供对这些组件进行访问的辅助技术之间的协定
javax.activation

javax.activity
包含解组期间通过 ORB 机制抛出的与 Activity 服务有关的异常
javax.annotation


javax.annotation.processing
用来声明注释处理器并允许注释处理器与注释处理工具环境通信的工具
javax.crypto
为加密操作提供类和接口
javax.crypto.interfaces 
根据 RSA Laboratories' PKCS #3 的定义提供 Diffie-Hellman 密钥接口 
javax.crypto.spec 
为密钥规范和算法参数规范提供类和接口
javax.imageio
Java Image I/O API 的主要包
javax.imageio.event
Java Image I/O API 的一个包用于在读取和写入图像期间处理事件的同步通知 
javax.imageio.metadata
用于处理读写元数据的 Java Image I/O API 的包 
javax.imageio.plugins.bmp
包含供内置 BMP 插件使用的公共类的包 
javax.imageio.plugins.jpeg 
支持内置 JPEG 插件的类 
javax.imageio.spi
包含用于 readerwritertranscoder 和流的插件接口以及一个运行时注册表的 Java Image I/O API 
javax.imageio.stream
Java Image I/O API 的一个包用来处理从文件和流中产生的低级别 I/O 
javax.jws


javax.jws.soap


javax.lang.model
用来为 Java 编程语言建立模型的包的类和层次结构
javax.lang.model.element
用于 Java 编程语言的模型元素的接口 
javax.lang.model.type
用来为 Java 编程语言类型建立模型的接口
javax.lang.model.util
用来帮助处理程序元素和类型的实用工具
javax.management
提供 Java Management Extensions 的核心类
javax.management.loading 
提供实现高级动态加载的类
javax.management.modelmbean
提供了 ModelMBean 类的定义
javax.management.monitor
提供 monitor 类的定义 
javax.management.openmbean
提供开放数据类型和 Open MBean 描述符类 
javax.management.relation
提供 Relation Service 的定义 
javax.management.remote
 JMX MBean 服务器进行远程访问使用的接口 
javax.management.remote.rmi
RMI 连接器是供 JMX Remote API 使用的一种连接器后者使用 RMI 将客户端请求传输到远程 MBean 服务器
javax.management.timer
提供对 Timer MBean计时器 MBean的定义
javax.naming
为访问命名服务提供类和接口
javax.naming.directory
扩展 javax.naming 包以提供访问目录服务的功能
javax.naming.event
在访问命名和目录服务时提供对事件通知的支持
javax.naming.ldap
提供对 LDAPv3 扩展操作和控件的支持
javax.naming.spi
提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持 
javax.net
提供用于网络应用程序的类
javax.net.ssl
提供用于安全套接字包的类
javax.print
 JavaTM Print Service API 提供了主要类和接口 
javax.print.attribute
提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口
javax.print.attribute.standard
 javax.print.attribute.standard 包括特定打印属性的类 
javax.print.event
 javax.print.event 包含事件类和侦听器接口
javax.rmi 
包含 RMI-IIOP 的用户 API
javax.rmi.CORBA 
包含用于 RMI-IIOP 的可移植性 API
javax.rmi.ssl 
通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory  RMIServerSocketFactory 的实现
javax.script 
脚本 API 由定义 Java TM Scripting Engines 的接口和类组成并为它们在 Java 应用程序中的使用提供框架
javax.security.auth 
此包提供用于进行验证和授权的框架 
javax.security.auth.callback 
此包提供与应用程序进行交互所必需的类以便检索信息例如包括用户名和密码的验证数据或显示信息例如错误和警告消息)。 
javax.security.auth.kerberos 
此包包含与 Kerberos 网络验证协议相关的实用工具类
javax.security.auth.login 
此包提供可插入的验证框架 
javax.security.auth.spi 
此包提供用于实现可插入验证模块的接口 
javax.security.auth.x500 
此包包含应该用来在 Subject 中存储 X500 Principal  X500 Private Crendentials 的类 
javax.security.cert 
为公钥证书提供类 
javax.security.sasl 
包含用于支持 SASL 的类和接口 
javax.sound.midi 
提供用于 MIDI音乐乐器数字接口数据的 I/O序列化和合成的接口和类
javax.sound.midi.spi 
在提供新的 MIDI 设备MIDI 文件 reader  writer或音库 reader 时提供服务提供者要实现的接口
javax.sound.sampled 
提供用于捕获处理和回放取样的音频数据的接口和类 
javax.sound.sampled.spi 
在提供新音频设备声音文件 reader  writer或音频格式转换器时提供将为其创建子类的服务提供者的抽象类
javax.sql 
为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API
javax.sql.rowset 
JDBC RowSet 实现的标准接口和基类 
javax.sql.rowset.serial 
提供实用工具类允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系
javax.sql.rowset.spi 
第三方供应商在其同步提供者的实现中必须使用的标准类和接口 
javax.swing 
提供一组轻量级”(全部是 Java 语言组件尽量让这些组件在所有平台上的工作方式都相同
javax.swing.border 
提供围绕 Swing 组件绘制特殊边框的类和接口 
javax.swing.colorchooser 
包含供 JColorChooser 组件使用的类和接口
javax.swing.event 
 Swing 组件触发的事件使用
javax.swing.filechooser 
包含 JFileChooser 组件使用的类和接口
javax.swing.plaf 
提供一个接口和许多抽象类Swing 用它们来提供自己的可插入外观功能
javax.swing.plaf.basic 
提供了根据基本外观构建的用户界面对象
javax.swing.plaf.metal 
提供根据 Java 外观曾经代称为 Metal构建的用户界面对象Java 外观是默认外观
javax.swing.plaf.multi 
提供了组合两个或多个外观的用户界面对象 
javax.swing.plaf.synth 
Synth 是一个可更换皮肤 (skinnable) 的外观在其中可委托所有绘制
javax.swing.table 
提供用于处理 javax.swing.JTable 的类和接口
javax.swing.text 
提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类
javax.swing.text.html 
提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类
javax.swing.text.html.parser 
提供默认的 HTML 解析器以及支持类
javax.swing.text.rtf 
提供一个类 (RTFEditorKit)用于创建富文本格式Rich-Text-Format的文本编辑器
javax.swing.tree 
提供处理 javax.swing.JTree 的类和接口 
javax.swing.undo 
允许开发人员为应用程序例如文本编辑器中的撤消/恢复提供支持 
javax.tools 
为能够从程序例如编译器中调用的工具提供接口 
javax.transaction 
包含解组期间通过 ORB 机制抛出的三个异常 
javax.transaction.xa 
提供定义事务管理器和资源管理器之间的协定的 API它允许事务管理器添加或删除 JTA 事务中的资源对象由资源管理器驱动程序提供)。
javax.xml 
根据 XML 规范定义核心 XML 常量和功能 
javax.xml.bind 
为包含解组编组和验证功能的客户端应用程序提供运行时绑定框架 
javax.xml.bind.annotation 
定义将 Java 程序元素定制成 XML 模式映射的注释 
javax.xml.bind.annotation.adapters 
XmlAdapter 及其规范定义的子类允许任意 Java 类与 JAXB 一起使用 
javax.xml.bind.attachment 
此包由基于 MIME 的包处理器实现该处理器能够解释并创建基于 MIME 的包格式的已优化的二进制数据 
javax.xml.bind.helpers 
仅由 JAXB 提供者用于 提供某些 javax.xml.bind 接口的部分默认实现
javax.xml.bind.util 
有用的客户端实用工具类 
javax.xml.crypto 
用于 XML 加密的通用类 
javax.xml.crypto.dom 
javax.xml.crypto 包的特定于 DOM 的类
javax.xml.crypto.dsig 
用于生成和验证 XML 数字签名的类
javax.xml.crypto.dsig.dom 
javax.xml.crypto.dsig 包特定于 DOM 的类
javax.xml.crypto.dsig.keyinfo 
用来解析和处理 KeyInfo 元素和结构的类
javax.xml.crypto.dsig.spec 
XML 数字签名的参数类
javax.xml.datatype 
XML/Java 类型映射关系
javax.xml.namespace 
XML 名称空间处理 
javax.xml.parsers 
提供允许处理 XML 文档的类
javax.xml.soap 
提供用于创建和构建 SOAP 消息的 API
javax.xml.stream


javax.xml.stream.events


javax.xml.stream.util


javax.xml.transform 
此包定义了用于处理转换指令以及执行从源到结果的转换的一般 API
javax.xml.transform.dom 
此包实现特定于 DOM 的转换 API
javax.xml.transform.sax 
此包实现特定于 SAX2 的转换 API 
javax.xml.transform.stax 
提供特定于 StAX 的转换 API
javax.xml.transform.stream 
此包实现特定于流和 URI 的转换 API
javax.xml.validation 
此包提供了用于 XML 文档验证的 API  
javax.xml.ws 
此包包含核心 JAX-WS API 
javax.xml.ws.handler 
该包定义用于消息处理程序的 API
javax.xml.ws.handler.soap 
该包定义用于 SOAP 消息处理程序的 API
javax.xml.ws.http 
该包定义特定于 HTTP 绑定的 API
javax.xml.ws.soap 
该包定义特定于 SOAP 绑定的 API 
javax.xml.ws.spi 
该包定义用于 JAX-WS 2.0  SPI 
javax.xml.xpath 
此包提供了用于 XPath 表达式的计算和访问计算环境的 object-model neutral API
org.ietf.jgss 
此包提供一个框架该框架允许应用程序开发人员通过利用统一的 API 使用一些来自各种基础安全机制 Kerberos的安全服务如验证数据完整性和和数据机密性
org.omg.CORBA 
提供 OMG CORBA API  JavaTM 编程语言的映射包括 ORB 如果已实现该类则程序员可以使用此类作为全功能对象请求代理Object Request BrokerORB)。
org.omg.CORBA_2_3 
CORBA_2_3 包定义对 Java[tm] Standard Edition 6 中现有 CORBA 接口所进行的添加
org.omg.CORBA_2_3.portable 
提供输入和输出值类型的各种方法并包含 org/omg/CORBA/portable 包的其他更新 
org.omg.CORBA.DynAnyPackage 
提供与 DynAny 接口一起使用的异常InvalidValueInvalidInvalidSeq  TypeMismatch)。
org.omg.CORBA.ORBPackage 
提供由 ORB.resolve_initial_references 方法抛出的异常 InvalidName以及由 ORB 类中的动态 Any 创建方法抛出的异常 InconsistentTypeCode 
org.omg.CORBA.portable 
提供可移植性层即可以使一个供应商生成的代码运行在另一个供应商 ORB 上的 ORB API 集合
org.omg.CORBA.TypeCodePackage 
提供用户定义的异常 BadKind  Bounds它们将由 TypeCode 类中的方法抛出  
org.omg.CosNaming 
 Java IDL 提供命名服务 
org.omg.CosNaming.NamingContextExtPackage 
此包包含以下在 org.omg.CosNaming.NamingContextExt 中使用的类 AddressHelper StringNameHelper URLStringHelper InvalidAddress 包规范 有关 Java[tm] Platform, Standard Edition 6 ORB 遵守的官方规范的受支持部分的明确列表请参阅 Official Specifications for CORBA support in Java[tm] SE 6 
org.omg.CosNaming.NamingContextPackage 
此包包含 org.omg.CosNaming 包的 Exception 
org.omg.Dynamic 
此包包含 OMG Portable Interceptor 规范 http://cgi.omg.org/cgi-bin/doc?ptc/2000-08-06 的第 21.9 小节中指定的 Dynamic 模块。
org.omg.DynamicAny 
提供一些类和接口使得在运行时能够遍历与 any 有关联的数据值并提取数据值的基本成分 
org.omg.DynamicAny.DynAnyFactoryPackage 
此包包含 DynamicAny 模块的 DynAnyFactory 接口中的类和异常该模块在 OMG The Common Object Request Broker: Architecture and Specification http://cgi.omg.org/cgi-bin/doc?formal/99-10-07 的第 9.2.2 小节中指定。 
org.omg.DynamicAny.DynAnyPackage 
此包包含 DynAny 模块的 DynAnyFactory 接口中的类和异常该模块在 OMG The Common Object Request Broker: Architecture and Specification http://cgi.omg.org/cgi-bin/doc?formal/99-10-07 的第 9.2 小节中指定。
org.omg.IOP 
此包包含在 OMG 文档 The Common Object Request Broker: Architecture and Specification http://cgi.omg.org/cgi-bin/doc?formal/99-10-07 的 13.6.小节中指定的 IOP 模块。
org.omg.IOP.CodecFactoryPackage 
此包包含 IOP::CodeFactory 接口中指定的异常作为 Portable Interceptor 规范的一部分)。  
org.omg.IOP.CodecPackage 
此包根据 IOP::Codec IDL 接口定义生成 
org.omg.Messaging 
此包包含 OMG Messaging Interceptor 规范 http://cgi.omg.org/cgi-bin/doc?formal/99-10-07 中指定的 Messaging 模块。
org.omg.PortableInterceptor 
提供一个注册 ORB 钩子 (hook) 的机制通过这些钩子 ORB 服务可以截取执行 ORB 的正常流 
org.omg.PortableInterceptor.ORBInitInfoPackage 
此包包含 OMG Portable Interceptor 规范 http://cgi.omg.org/cgi-bin/doc?ptc/2000-08-06 的第 21.7.2 小节中指定的 PortableInterceptor 模块的 ORBInitInfo 本地接口中的异常和 typedef。 
org.omg.PortableServer 
提供一些类和接口用来生成跨多个供应商 ORB 的可移植应用程序的服务器端 
org.omg.PortableServer.CurrentPackage 
提供各种方法实现这些实现能够访问调用方法的对象的身份
org.omg.PortableServer.POAManagerPackage 
封装 POA 关联的处理状态 
org.omg.PortableServer.POAPackage 
允许程序员构造可在不同 ORB 产品间移植的对象实现
org.omg.PortableServer.portable 
提供一些类和接口用来生成跨多个供应商 ORB 的可移植应用程序的服务器端
org.omg.PortableServer.ServantLocatorPackage 
提供定位 servant 的类和接口
org.omg.SendingContext 
为值类型的编组提供支持 
org.omg.stub.java.rmi 
包含用于 java.rmi 包中出现的 Remote 类型的 RMI-IIOP Stub 
org.w3c.dom 
为文档对象模型 (DOM) 提供接口该模型是 Java API for XML Processing 的组件 API
org.w3c.dom.bootstrap 


org.w3c.dom.events 


org.w3c.dom.ls


org.xml.sax 
此包提供了核心 SAX API 
org.xml.sax.ext 
此包包含适合的 SAX 驱动程序不一定支持的 SAX2 设施的接口  
org.xml.sax.helpers 
此包包含帮助器其中包括对引导基于 SAX 的应用程序的支持