您的位置 首页 新能源

Java开发人员必知的20品种库和API,你知道几个

Java开发人员必知的20种类库和API,你知道几个-本文总结了日志、JSON解析、单测、XML解析、字节码处理、数据库连接池、集合类、邮件、加密、嵌入式SQL数据库、JDBC故障诊断以及序列化等20个方面的常用类库。都是你日常开发经常可能要用到的,现在不用不要紧,但是你要知道有这么一篇文章可以供你参考。

一个有经历的Java开发人员特征之一便是长于运用已有的轮子来造车。《EffecTIve Java》的作者Joshua Bloch从前说过:“主张运用现有的API来开发,而不是重复造轮子”。在本文中,我将共享一些Java开发人员应该了解的最有用的和必要的库和API。趁便说一句,这儿不包含结构,如Spring和Hibernate由于他们十分有名,都有特定的功用。

本文总结了日志、JSON解析、单测、XML解析、字节码处理、数据库衔接池、调集类、邮件、加密、嵌入式SQL数据库、JDBC故障诊断以及序列化等20个方面的常用类库。都是你日常开发常常可能要用到的,现在不用没关系,可是你要知道有这么一篇文章能够供你参阅。

不知道不可怕,可怕的是你不知道你不知道。

一、日志相关类库

日志库是很常见的,由于你在每一个项目中都需求他们。打印日志是服务器端运用中最重要的工作,由于日志是你了解你的程序发生了什么的仅有途径。尽管JDK趁便自己的日志库,可是仍是有许多更好的挑选可用,例如Log4j、SLF4j和LogBack。

Java开发人员必知的20品种库和API,你知道几个

Java开发人员应该了解日志记载的利害,而且了解为什么SLF4J要比Log4J要好。

二、JSON解析库

在当今世界的web服务和物联网中(IoT),JSON现已替代了XML,成为从客户端到服务器传送信息的首选协议。有一个好音讯和一个坏音讯。坏音讯是JDK没有供给JSON库。好音讯是有许多优异的第三方库能够用来解析和创立JSON音讯,如Jackson 和 Gson

Java开发人员必知的20品种库和API,你知道几个

一个Java web开发人员应该了解Jackson 和 Gson这两种中的至少一种库。

三、单元测试库

单元测试技能的运用,是区别一个一般的开发者和洽的开发者的重要目标。程序员常常有各种托言不写单元测试,但最常见的托言便是缺少经历和常识。常见的单测结构有JUnit,Mockito和PowerMock。

Java开发人员必知的20品种库和API,你知道几个

四、通用类库

有几个很好的第三方通用库可供Java开发人员运用,例如Apache Commons和Google Guava。我会常常在我的代码中运用这些通用类库,由于这些类库都是通过许多开发者实践过的,无论是有用性仍是在功用等方面都是最佳的。

Java开发人员必知的20品种库和API,你知道几个

五、Http 库

我不是很喜爱JDK的一个重要原因就包含他们缺少对HTTP的支撑。尽管能够运用java.net包类,可是这和直接运用像Apache HttpClient和HttpCore等开源类库比起来费事太多了。

Java开发人员必知的20品种库和API,你知道几个

尽管JDK 9将开端HTTP 2.0,也对HTTP的支撑做了优化,可是我仍是强烈主张一切的Java开发人员了解盛行的HTTP处理类库,例如HttpClient和HttpCore HTTP等库。

六、XML解析库

市道上有许多XML解析的类库,如Xerces, JAXB, JAXP, Dom4j, Xstream等。Xerces2是下一代高功用,完全兼容的XML解析东西。Xerces2界说了 Xerces NaTIve Interface (XNI)规范,并供给了一个完好、兼容规范的 XNI 规范完结。该解析器是完全从头规划和完结的,更简略以及模块化。

Java开发人员必知的20品种库和API,你知道几个

七、Excel读写库

许多运用程序需求供给把数据导出到Excel的功用,假如你要做相同的Java运用程序,那么你需求Apache POI API。

Java开发人员必知的20品种库和API,你知道几个

这是一个十分丰厚的类库,你能够从Java程序读写XLS文件。

八、字节码库

假如你正在编写一个结构或许类库。有一些受欢迎的字节码库如javassist和Cglib Nodep能够供你挑选,他们能够让你阅览和修正运用程序生成的字节码。

Java开发人员必知的20品种库和API,你知道几个

Javassist使得JAVA字节码操作十分简略。它是一个为修正Java字节码而生的类库。ASM是另一个有用的字节码修正库。

九、数据库衔接池库

假如你的Java运用程序与数据库交互不是运用数据库衔接池库的话,那么你就大错特错了。由于在运行时创立数据库衔接十分耗时而且会拖慢你的程序。所以墙裂主张运用,有些好用的衔接池可供挑选,如Commons Pool 和 DBCP。

在web运用程序中,web服务器一般供给了这些功用。可是在java项目中需求把数据库衔接池的类库导入到运用中。

十、音讯传递库

像日志和数据库衔接池相同,音讯传递也是许多实践的Java项目中必备的。Java供给了JMS Java音讯服务,但这不是JDK的一部分,你需求独自的引进jms.jar。相似地,假如您预备运用第三方音讯传递协议,TIbco RV是个不错的挑选。

Java开发人员必知的20品种库和API,你知道几个

十一、PDF处理库

除了Excel和Word,PDF也是一种常用的文件格局。假如你的运用程序要支撑PDF格局的文件处理,你能够运用iText和Apache FOP类库。两者都供给了十分有用的PDF处理功用。

Java开发人员必知的20品种库和API,你知道几个

十二、日期和时刻库

在Java之前,JDK的日期和时刻库一向被人们所诟病,比方其非线程安全的、不可变的、简单犯错等。许多开发人员会挑选更好用的JodaTIme类库。

可是在Java8推出之后,咱们就能够完全抛弃JodaTime了,由于Java 8供给了其一切功用。可是,假如你的代码运行在一个低版别的JDK中,那么JodaTime仍是值得运用的。

十三、调集类库

尽管JDK有丰厚的调集类,但仍是有许多第三方类库能够供给更多更好的功用。如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的基础上,供给简化的用法。

Java开发人员必知的20品种库和API,你知道几个

十五、HTML解析库

和XML与JSON相似,HTML是别的一种咱们可能要打交道的传输格局。值得幸亏的是,咱们有jsoup能够大大简化Java运用程序运用HTML。你不只能够运用JSoup解析HTML还能够创立HTML文档。

Java开发人员必知的20品种库和API,你知道几个

十六、加密库

Apache Commons宗族中的Commons Codec就供给了一些公共的编解码完结,比方Base64, Hex, MD5,Phonetic and URLs等等。

Java开发人员必知的20品种库和API,你知道几个

十七、嵌入式SQL数据库库

我真的是十分喜爱像H2这种内存数据库,他能够嵌入到你的Java运用中。在你跑单测的时分假如你需求一个数据库,用来验证你的SQL的话,他是个很好的挑选。趁便说一句,H2不是仅有嵌入式DB,你还有Apache Derby和HSQL可供挑选。

十八、JDBC故障诊断库

有不错的JDBC扩展库的存在使得调试变得很简单,例如P6spy,这是一个针对数据库拜访操作的动态监测结构,它使得数据库数据可无缝截取和操作,而不用对现有运用程序的代码作任何修正。P6Spy 分发包包含P6Log,它是一个可记载任何 Java 运用程序的一切JDBC业务的运用程序。其装备完结运用时,能够进行数据拜访功用的监测。

十九、序列化库

Google Protocol Buffer 是一种简便高效的结构化数据存储格局,能够用于结构化数据串行化,或许说序列化。它很适合做数据存储或 RPC 数据交换格局。可用于通讯协议、数据存储等范畴的言语无关、渠道无关、可扩展的序列化结构数据格局。现在供给了 C++、Java、Python 三种言语的 API。

Java开发人员必知的20品种库和API,你知道几个

二十、网络库

一些有用的网络库主要有Netty的和Apache MINA。假如您正在编写一个运用程序,你需求做的底层网络使命,能够考虑运用这些库。

Java开发人员必知的20品种库和API,你知道几个

这都是每位Java开发人员应该了解的,而且十分有用的库。Java生态系统十分巨大的,你会发现有许多不同的类库能够做不同的工作。每个你想到的东西,都可能有一个库能够做到。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/102857.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部