一、java采用包结构来组织和管理类和接口文件,那么java中有哪些常用的包呢?现总结如下:
java.lang:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。
java.io:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等。
java.util:java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。如java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,
提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date
类,处理变成数组的Vector类,以及stack和HashTable类。
java.util.zip:实现文件压缩功能。
java.lang.reflect:提供用于反射对象的工具。
java.wat.peer:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。
java.NET:实现网络功能的类库有Socket类、ServerSocket类。
java.awt.datatransfer:处理数据传输的工具类,包括剪贴板,字符串发送器等。
java.awt:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如 Checkbox类、Containter类、LayoutManger接口等,以及界面用户交互控制和事件响应,如Event类。
java.awt.image:处理和操纵来自于网上的图片的java工具类库。
java.awt.event:GUI事件处理包。
java.sql:实现JDBC的类库。
java.math 包含执行精度数学运算功能的类
java.applet 创建Applet程序所用到的类
java.beans 包含基于Java Bean构架需要的Bean所需类
java.io 提供数据流,对象序列和输入/输出类
java.net 包含编写网络程序的类
java.nio 包含网络I/O类,主要有buffer,channel和charset3个类
java.rmi 包含远程方法调用RMI(Remote Method Invocation,即一个java虚拟机对象访问另一个java虚拟机对象)
java.security包含一些安全框架的类和接口
java.text 包含处理文本,日期,数字及消息的类和接口。
注意不能用import java.util.* 代替import java.util.zip。因为导入包实际上是导入了包中的所有的类,但是并不包括子包中的类。
二、 Apache Commons
该部分转自https://www.cnblogs.com/koal/p/5161743.html
三、日志相关类库:Log4j、SLF4j和LogBack
日志库是很常见的,因为你在每一个项目中都需要他们。打印日志是服务器端应用中最重要的事情,因为日志是你了解你的程序发生了什么的唯一途径。尽管JDK附带自己的日志库,但是还是有很多更好的选择可用。
Java开发人员应该熟悉日志记录的利弊,
1、slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架。
2、他们可以单独的使用,也可以绑定slf4j一起使用。
二、JSON解析库
在当今世界的web服务和物联网中(IoT),JSON已经取代了XML,成为从客户端到服务器传送信息的首选协议。有一个好消息和一个坏消息。坏消息是JDK没有提供JSON库。好消息是有许多优秀的第三方库可以用来解析和创建JSON消息,如Jackson 和 Gson,应该熟悉Jackson 和 Gson这两种中的至少一种库。
三、单元测试库
常见的单测框架有JUnit,Mockito和PowerMock。
单元测试技术的使用,是区分一个一般的开发者和好的开发者的重要指标。
四、通用类库
很好的第三方通用库如Apache Commons和Google Guava。
五、Http 库
Apache HttpClient和HttpCore等开源类库。
六、XML解析库
市面上有很多XML解析的类库,如Xerces, JAXB, JAXP, Dom4j, Xstream等。
Xerces2是下一代高性能,完全兼容的XML解析工具。Xerces2定义了 Xerces Native Interface (XNI)规范,并提供了一个完整、兼容标准的 XNI 规范实现。该解析器是完全重新设计和实现的,更简单以及模块化。
七、Excel读写库
需要提供把数据导出到Excel的功能,Apache POI API。
八、字节码库
受欢迎的字节码库如javassist和Cglib Nodep可以供你选择,他们可以让你阅读和修改应用程序生成的字节码。
Javassist使得JAVA字节码操作非常简单。它是一个为编辑Java字节码而生的类库。ASM是另一个有用的字节码编辑库。
九、数据库连接池库
好用的连接池可供选择,如Commons Pool 和 DBCP。
十、消息传递库
Java提供了JMS Java消息服务,但这不是JDK的一部分,你需要单独的引入jms.jar。类似地,如果您准备使用第三方消息传递协议,Tibco RV是个不错的选择。
十一、PDF处理库
使用iText和Apache FOP类库。两者都提供了非常有用的PDF处理功能。
十三、集合类库
Apache Commons Collections、 Goldman Sachs collections、 Google Collections和Trove。
Trove尤其有用,因为它提供所有标准Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含int 键或值的Map 等)上操作的Collections 类的功能。
FastUtil是另一个类似的API,它继承了Java Collection Framework,提供了数种特定类型的容器,包括映射map、集合set、列表list、优先级队列(prority queue),实现了java.util包的标准接口(还提供了标准类所没有的双向迭代器),还提供了很大的(64位)的array、set、list,以及快速、实用的二进制或文本文件的I/O操作类。
十四、邮件API
javax.mail 和 Apache Commons Email 提供了发送邮件的api。它们建立在JavaMail API的基础上,提供简化的用法。
十五、HTML解析库
使用JSoup解析HTML还可以创建HTML文档。
十六、加密库
Apache Commons家族中的Commons Codec就提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic and URLs等等。
十七、嵌入式SQL数据库库
我真的是非常喜欢像H2这种内存数据库,他可以嵌入到你的Java应用中。在你跑单测的时候如果你需要一个数据库,用来验证你的SQL的话,他是个很好的选择。顺便说一句,H2不是唯一嵌入式DB,你还有Apache Derby和HSQL可供选择。
十八、JDBC故障诊断库
有不错的JDBC扩展库的存在使得调试变得很容易,例如P6spy,这是一个针对数据库访问操作的动态监测框架,它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。P6Spy 分发包包括P6Log,它是一个可记录任何 Java 应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。
十九、序列化库
Google Protocol Buffer 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
二十、网络库
一些有用的网络库主要有Netty的和Apache MINA。如果您正在编写一个应用程序,你需要做的底层网络任务,可以考虑使用这些库。