Java开发中有20个常用的类库和API?为什麽要学习常用的类库和API?Java作为一种应用已有十几年历史的Java语言,但是在这条职业发展之路上,仍然有很多java开发工程师每天都在苦干!尽管辛苦,但始终创造不了多少价值。而且,“看起来很轻松”java开发人员擅长于利用现有的API进行开发,而非重复地进行制造。在这篇文章中,结合了在线,java开发者应该非常熟悉的一些常用库API,包括日志、JSON解析、单测、XML解析、字节码处理、数据库连接池、集合类、邮件、加密、嵌入SQL数据库、JDBC故障诊断和20个常用类库,如序列化。这在日常开发中经常被使用。推荐收藏!!!
一、日志相关。
printlog是服务器端应用的首要任务,因为日志是您了解程序运行状况的唯一方法。虽然JDK有自己的日志库,但还有许多更好的选项,比如Log4j、SLF4j和LogBack。
日志相关
JSON解析库。
如今,JSON已取代XML成为Web服务和物联网(IoT),成为客户端与服务器之间传递信息的首选协议。但JDK并不提供JSON库。但是,还有很多出色的第三方库可以用于解析和创建JSON消息,比如Jackson和Gson。
JSON分析库。
第三,单元测试库。
使用单元测试技术,是区分普通开发人员和优秀开发人员的重要标志。编程人员通常没有编写单元测试的理由,但是最普遍的理由是缺少经验和知识。常用的单测帧是JUnit、Mockito和PowerMock。
单元测试库
四,通用类库。
Java开发者可以使用一些优秀的第三方通用库,比如ApacheCommons和GoogleGuava。由于这些通用类库已经通过了无数个开发人员实践,无论从实用性还是性能上来说,都是最好的。
通用类库
五,Http图书馆。
JDK缺少HTTP支持。尽管有可能使用java.netbundle类,但这与直接使用诸如ApacheHttpClient和HttpCore之类的开源类库相比,麻烦太大。
Http库
6,XML解析库。
市场上已经出现了大量XML解析的类库,比如Xerces,JAXB,JAXP,Dom4j,Xstream等等。Xerces2是新一代高性能、完全兼容的XML解析工具。Xerces2定义了XercesNativeinterface(XNI)规范,并提供了一个完全兼容的标准XNI规范实现。这个分析器完全被重新设计和实现,并且更加简单。
XML分析库。
七、Excel读写库。
很多应用程序都需要提供向Excel导出数据的能力,如果您想开发同一个Java应用,则需要使用ApachePOIAPI。在Java程序中可以读取和写入XLS文件,这是一个非常丰富的类库。
Excel读写库。
八,bycode库。
当您在写一个框架或类库时。您可以选择诸如javassist和CglibNodep这样的常用字节码库,它们允许您读取并修改应用程序生成的字节码。Javassist使JAVA字节码操作变得非常简单。这是一个用来编辑Java字节码的类库。ASM是另一种非常有用的字节码。bycode库
九、数据库连接池。
如果您的Java应用程序没有使用数据库连接池库来与数据库进行交互,那么您的错误将非常严重。由于在运行时创建数据库连接很费时,而且会使程序拖慢。因此,强烈推荐使用一些可用的连接池,比如CommonsPool和DBCP。对于web应用,web服务器通常会提供这些功能。但您需要将java项目中的数据库连接池类库导入应用。
资料库连接资料库
十,信息传递库。
与日志和数据库连接池类似,消息传递在许多实际Java项目中也是必不可少的。Java提供JMSJava消息服务,但是这并不属于JDK,您需要单独介绍jms.jar。同样,TibcoRV也是一个很好的选择,如果您准备使用第三方消息传输协议。
消息传递库
十一、PDF处理图书馆。
除Excel和Word外,PDF还是一种常见的文件格式。如果您的应用程序支持PDF格式的文件处理,您可以使用iText和ApacheFOP类库。这两种产品都提供了非常有用的PDF处理能力。
PDF处理库。
日期与时序12。
JDK的日期和时间库在Java之前就遭到了很多问题,例如它的非线程安全、不可更改、易出错等等。许多开发者都喜欢使用JodaTime类库。
但在java8发布后,我们将完全放弃JodaTime,因为Java8提供了所有的功能。然而,如果您的代码是在低端版本的JDK上运行,那么JodaTime仍然值得使用。
十三,收集类库。
尽管JDK拥有丰富的集合类,但是仍然有许多第三方类库能够提供更好的功能。例如ApacheCommonsCollections、GoldmanSachsSachs、GoogleCollections和Trove等。Trove特别有用处,因为它为所有标准Collections类提供了更快的版本,并且可以直接使用原始语言(primitive)(如Map中的一个int键或值等)进行操作。
FastUtil是另一种相似的API,其继承了JavaCollectionFramework,提供了多种特定类型的容器,包括map映射、setset、list、prorityqueue)、为java.util包实现了一个标准接口(也提供了一个标准类没有的双向迭代器),此外,还有大量(64位)的array、set、list,以及快速实用型二进制或文本文件I/O操作类。
十四,邮件API。
javax.mail和ApacheCommonsEmail提供了api来发送邮件。他们以JavaMailAPI为基础,提供简化使用。
邮件API
15,HTML解析库。
与XML类似于JSON,HTML是我们可能需要处理的另一种传输格式。谢天谢地,我们提供了jsoup来极大地简化了使用HTML的Java应用程序。不仅仅是用JSoup来解析HTML,也可以创建一个HTML文档。
HTML分析库。
16,加密的图书馆。
ApacheCommons家族中的CommonsCodec提供一些通用的编码解码实现,如Base64、Hex、MD5、PhoneticandURLs等。
加密库
嵌入式SQL数据库库。
很喜欢H2这类可嵌入到Java应用程序中的内存数据库。当您进行单点测试时,如果您需要一个用于验证您的SQL的数据库,您将会非常满意。另外,H2不仅是唯一的嵌入式DB,您还可以选择ApacheDerby和HSQL。
内嵌SQL数据库。
JDBC的故障诊断库。
拥有优秀的JDBC扩展库,可以轻松地进行调试,比如P6spy就是其中之一。