盘点 20多种基本Java库和API,值得收藏!
今天給大家收集的一些有用的第三方庫,Java開發(fā)人員應該掌握,歡迎收藏!
1.單元測試庫[JUnit和Mockito]
單元測試是將普通開發(fā)人員與優(yōu)秀開發(fā)人員區(qū)分開的最重要的事情。經(jīng)常為程序員提供不編寫單元測試的借口,但是避免單元測試的最常見借口是缺乏流行的單元測試庫(包括JUnit,Mockito和PowerMock)的經(jīng)驗和知識。
2. JSON解析庫[Jackson和Gson]
在當今的Web服務和IoT世界中,JSON已成為將信息從客戶端傳輸?shù)椒掌鞯氖走x協(xié)議。他們已經(jīng)將XML替換為以獨立于平臺的方式傳輸信息的最優(yōu)選方式。
不幸的是,JDK沒有JSON庫。但是,有很多不錯的第三方庫,例如Jackson和Gson,它們都可以讓您解析和創(chuàng)建JSON消息。
3.記錄庫[Log4j2和SLF4j]
日志記錄庫非常常見,因為在每個項目中都需要它們。對于服務器端應用程序而言,它們是最重要的事情,因為日志僅放置在您可以看到應用程序中正在發(fā)生什么的地方。
即使JDK附帶了自己的日志記錄庫,也可以使用更好的替代方法,例如Log4j,SLF4j和LogBack。
4.通用庫[Apache Commons和Guava]
Java開發(fā)人員可以使用幾個不錯的通用第三方庫,例如Apache Commons和Google Guava。我總是將這些庫包含在我的項目中,因為它們簡化了許多任務。
正如約書亞·布洛赫(Joshua Bloch)在“有效Java”中正確說的那樣,重新發(fā)明輪子沒有意義。我們應該更喜歡使用經(jīng)過測試和測試的庫,而不是時不時地編寫我們自己的例程。
對于Java開發(fā)人員來說,熟悉Google Guava和Apache Commons庫是一件好事。
5. HTTP庫[HttpClient]
我不喜歡JDK的一件事是它缺乏對HTTP的支持。盡管您可以使用java.net包中的類進行HTTP連接,但是使用開放源代碼的第三方庫(如Apache HttpClient和HttpCore)并不是那么容易或無縫。
盡管JDK 9帶來了HTTP 2.0的支持以及對HTTP的更好支持,但我強烈建議所有Java開發(fā)人員熟悉流行的HTTP客戶端庫,包括HttpClient和HttpCore。
6. XML解析庫[Xerces和JAXB]
有許多XML解析庫,包括Xerces,JAXB,JAXP,Dom4j和Xstream。Xerces2是Apache Xerces系列中的下一代高性能,完全兼容的XML解析器。
Xerces的這個新版本引入了Xerces本機接口(XNI),它是用于構建解析器組件和配置的完整框架,該框架非常模塊化且易于編程。
Apache Xerces2解析器是XNI的參考實現(xiàn),但是可以使用Xerces本機接口編寫其他解析器組件,配置和解析器。
Dom4j是用于Java應用程序的另一個靈活的XML框架。
7. Excel閱讀庫[Apache POI]
信不信由你–所有現(xiàn)實世界中的應用程序都必須以某種形式與Microsoft Office進行交互。
許多應用程序都需要提供在Excel中導出數(shù)據(jù)的功能,如果必須從Java應用程序中進行導出,則需要Apache POI API。
這是一個非常豐富的庫,可讓您從Java程序讀取和寫入XLS文件。
8.字節(jié)碼庫[Javassist和CgLib]
如果要編寫一個框架或庫來生成代碼或與字節(jié)碼進行交互,則需要一個字節(jié)碼庫。
它們使您可以讀取和修改應用程序生成的字節(jié)碼。Java世界中一些流行的字節(jié)碼庫是javassist和Cglib Nodep。
Javassist(JAVA編程ASSISTant)使Java字節(jié)碼操作非常簡單。它是用于在Java中編輯字節(jié)碼的類庫。ASM是另一個有用的字節(jié)碼編輯庫。
9.數(shù)據(jù)庫連接池庫[DBCP和C3P0]
如果要通過Java應用程序與數(shù)據(jù)庫進行交互,但不使用數(shù)據(jù)庫連接池庫,那么您將丟失某些內(nèi)容。
由于在運行時創(chuàng)建數(shù)據(jù)庫連接會花費時間并且使請求處理變慢,因此始終建議使用DB連接庫。最受歡迎的是Commons Pool和DBCP。
在Web應用程序中,其Web服務器通常提供這些功能,但是在核心Java應用程序中,您需要將這些連接池庫包括在類路徑中,以使用數(shù)據(jù)庫連接池。
10.消息傳遞庫[JMS和MQ]
與日志記錄和數(shù)據(jù)庫連接類似,消息傳遞也是許多實際Java應用程序的共同功能。
Java提供了JMS或Java Messaging Service,它不是JDK的一部分。對于此組件,您需要包括一個單獨的jms.jar。
同樣,如果您使用的是Tibco RV之類的第三方消息傳遞協(xié)議,則需要tibrv.jar 在應用程序類路徑中使用第三方JAR — —。
11. PDF庫[iText]
與Microsoft Excel相似,PDF庫是另一種普遍存在的格式。如果需要在應用程序中支持PDF功能,例如導出PDF文件中的數(shù)據(jù),則可以使用iText和Apache FOP庫。
兩者都提供有用的與PDF相關的功能,但是iText變得越來越豐富。您可以進一步參閱《iText in Action》一書,以了解有關iText的更多信息。
12.日期和時間庫[Joda Time]
在Java 8之前,JDK的數(shù)據(jù)和時間庫存在許多缺陷,因為它們不是線程安全的,不可變的,并且不容易出錯。許多Java開發(fā)人員都依靠JodaTime來實現(xiàn)其日期和時間要求。
從JDK 8開始,沒有理由使用Joda,因為您可以在JDK 8的新日期和時間API中獲得所有功能,但是如果您使用的是較舊的Java版本,則JodaTime是一個值得學習的庫。
13.集合庫[Eclipse集合]
盡管JDK具有豐富的集合庫,但仍有一些第三方庫提供了更多選項,例如Apache Commons集合,Goldman Sachs集合,Google集合,Eclipse集合和Trove。
Trove庫特別有用,因為它為Java提供了高速的常規(guī)和原始集合。
FastUtil是另一個類似的API。它通過提供特定類型的映射,集合,列表和優(yōu)先級隊列來擴展Java Collections Framework,該隊列具有較小的內(nèi)存占用,快速的訪問和插入。它還提供了大型(64位)數(shù)組,集合和列表,以及針對二進制文件和文本文件的快速,實用的I / O類。
Eclipse Collections是另一個有用的開放課程集合庫,值得學習。
14.電子郵件API [Java Mail API]
javax.mail和Apache Commons Email都提供了用于從Java發(fā)送電子郵件的API 。它建立在旨在簡化的JavaMail API之上。
如果您需要一個項目,則可以使用Java FX構建電子郵件客戶端,并在那里使用mail API發(fā)送郵件。
15. HTML解析庫[Jsoup]
與JSON和XML相似,HMTL是我們許多人必須處理的另一種常見格式。值得慶幸的是,我們擁有JSoup,它大大簡化了Java應用程序中HTML的使用。
您可以使用JSoup不僅解析HTML,還可以創(chuàng)建HTML文檔
它提供了使用DOM,CSS和類似jquery的最佳方法來提取和處理數(shù)據(jù)的非常方便的API 。JSoup實現(xiàn)了WHATWG HTML5規(guī)范,并且像現(xiàn)代瀏覽器一樣將HTML解析為相同的DOM。
16,Apache Commons Codec
Apache Commons Codec軟件包包含用于各種格式(例如Base64和Hexadecimal)的簡單編碼器和解碼器。
除了這些廣泛使用的編碼器和解碼器之外,編解碼器包還維護了語音編碼實用程序的集合。
17.嵌入式SQL數(shù)據(jù)庫庫[H2,HSQL和Derby]
我真的很喜歡H2這樣的內(nèi)存數(shù)據(jù)庫,您可以將其嵌入Java應用程序中。它們非常適合測試SQL腳本和運行需要數(shù)據(jù)庫的單元測試。
但是,H2不是唯一的數(shù)據(jù)庫,您還可以選擇Apache Derby和HSQL。
19.聯(lián)網(wǎng)庫[Apache MINA]
一些有用的網(wǎng)絡庫是Netty和Apache MINA。如果您在編寫需要執(zhí)行低級網(wǎng)絡任務的應用程序,請考慮使用這些庫。
IT技術分享社區(qū)
個人博客網(wǎng)站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協(xié)助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識
總結
以上是生活随笔為你收集整理的盘点 20多种基本Java库和API,值得收藏!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中手动引用COM组建的例子
- 下一篇: Java技术:Optional 相关用法