一般一個(gè)經(jīng)驗(yàn)豐富的開發(fā)者,一般都喜歡使用開源的第三方api庫來進(jìn)行開發(fā),畢竟這樣能夠提高開發(fā)效率,并且能夠簡單快速的集成到項(xiàng)目中去,而不用花更多的時(shí)間去在重復(fù)造一些無用的輪子,多了解一些第三方庫可以提高我們的開發(fā)效率,下面就來看一下在開發(fā)過程中經(jīng)常會(huì)用到的一些開發(fā)第三方庫,也可能不是太全,就列舉一些常見或者常用的吧。

          1,日志庫


          日志庫是最常用的,畢竟在開發(fā)項(xiàng)目的過程中都需要使用日志來記錄項(xiàng)目的運(yùn)行信息,從而很快的定位項(xiàng)目的發(fā)生的問題。盡管JDK附帶了自己的日志庫,但是還有更好的選擇,例如
          Log4j、SLF4j和LogBack
          。一般建議使用SLF4j。比如Alibaba開發(fā)手冊上也是這樣說的,畢竟SLF4J使您的代碼獨(dú)立于任何特定的日志API,就是在項(xiàng)目的其它框架中使用了其它的日志框架庫也能夠很好的集成。

          2,JSON轉(zhuǎn)換庫


          在當(dāng)今的web服務(wù)、手機(jī)api接口開發(fā)和物聯(lián)網(wǎng)世界中,JSON已經(jīng)成為將信息從客戶端傳送到服務(wù)器的首選協(xié)議。它們已經(jīng)取代了XML,成為以獨(dú)立于平臺(tái)的方式傳輸信息的首選方式。不幸的是,JDK沒有JSON庫。但是,有許多優(yōu)秀的第三方庫允許您解析和創(chuàng)建JSON消息,比如
          Jackson和Gson,F(xiàn)astJson。

          3,單元測試庫庫


          單元測試是區(qū)分普通開發(fā)人員和優(yōu)秀開發(fā)人員的最重要的東西。程序員經(jīng)常被給予不寫單元測試的借口,但是最常見的避免單元測試的借口是缺乏流行的單元測試庫的經(jīng)驗(yàn)和知識(shí),包括
          JUnit、Mockito和PowerMock。

          4,通用類庫

          Java開發(fā)人員可以使用一些優(yōu)秀的通用第三方庫,比如Apache Commons和谷歌Guava
          。我總是在我的項(xiàng)目中包含這些庫,因?yàn)樗鼈兒喕嗽S多任務(wù)。正如約書亞?布洛赫(Joshua Bloch)在《Effective
          Java》一書中正確指出的那樣,重新發(fā)明輪子是沒有意義的。我們應(yīng)該使用經(jīng)過測試的庫,而不是時(shí)不時(shí)地編寫我們自己的程序。對于開發(fā)人員來說,熟悉Apache
          Commons和谷歌Guava是很有用的。

          5,HTTP庫

          雖然JDK中的 java.net 包也能實(shí)現(xiàn)HTTP連接,以及Http請求,但是它的使用沒有像Apache HttpClient和HttpCore
          這樣的開源第三方庫簡單,執(zhí)行HTTP請求都得自己自己重復(fù)寫大量的代碼。雖然JDK 9提供了對HTTP
          2.0的支持和對HTTP的更好支持,但我強(qiáng)烈建議所有Java開發(fā)人員熟悉流行的HTTP客戶端請求庫,包括HttpClient和HttpCore。

          6,XML解析庫

          有許多XML解析庫,包括Xerces、JAXB、JAXP、Dom4j和Xstream。Xerces2是Apache
          Xerces家族中下一代高性能、完全兼容的XML解析器。這個(gè)新版本的Xerces引入了Xerces本機(jī)接口(XNI),這是一個(gè)用于構(gòu)建解析器組件和配置的完整框架,非常模塊化,易于編程。Apache
          Xerces2解析器是XNI的參考實(shí)現(xiàn),但是可以使用Xerces本機(jī)接口編寫其他解析器組件、配置和解析器。Dom4j是另一個(gè)用于Java應(yīng)用程序的靈活XML框架


          7,EXCEL庫

          信不信由你——所有現(xiàn)實(shí)世界的應(yīng)用程序都必須以某種形式與Microsoft
          Office交互。許多應(yīng)用程序需要提供在Excel中導(dǎo)出數(shù)據(jù)的功能,如果必須從Java應(yīng)用程序中導(dǎo)出數(shù)據(jù),則需要Apache POI API
          。這是一個(gè)非常豐富的庫,允許您從Java程序讀取和寫入XLS文件。

          8,字節(jié)碼庫

          如果您正在編寫一個(gè)生成代碼或與字節(jié)碼交互的框架或庫,那么您需要一個(gè)字節(jié)碼庫。它們允許您讀取和修改由應(yīng)用程序生成的字節(jié)碼。

          Java世界中流行的一些字節(jié)碼庫是javassist和Cglib Nodep。Javassist
          使得JAVA字節(jié)碼操作非常簡單。它是一個(gè)用于編輯Java字節(jié)碼的類庫。ASM是另一個(gè)有用的字節(jié)碼編輯庫。

          9,數(shù)據(jù)庫連接池庫


          如果您正在與來自Java應(yīng)用程序的數(shù)據(jù)庫進(jìn)行交互,但是沒有使用數(shù)據(jù)庫連接池庫,那么您可能會(huì)遺漏一些內(nèi)容。由于在運(yùn)行時(shí)創(chuàng)建數(shù)據(jù)庫連接需要時(shí)間,并且會(huì)使請求處理速度變慢,因此總是建議使用DB連接庫。其中最流行的是
          C3P0和DBCP,以及阿里的德魯伊(Druid)。

          在web應(yīng)用程序中,它的web服務(wù)器通常提供這些功能,但是在核心Java應(yīng)用程序中,您需要將這些連接池庫包含到類路徑中,以使用數(shù)據(jù)庫連接池。

          10,消息庫

          與日志記錄和數(shù)據(jù)庫連接類似,消息傳遞也是許多實(shí)際Java應(yīng)用程序的一個(gè)常見特性。

          Java提供JMS,或者Java消息傳遞服務(wù),這不是JDK的一部分。對于這個(gè)組件,您需要包含一個(gè)單獨(dú)的jms.jar。
          ?類似地,如果您正在使用第三方消息傳遞協(xié)議,比如ActiveMQ,RabbitMQ,那么,您需要在您的應(yīng)用程序類路徑中使用第三方JAR—ActiveMQ,
          RabbitMQ的JAR。
          11,PDF庫

          Microsoft Excel類似,PDF庫是另一種常見的格式。如果需要在應(yīng)用程序中支持PDF功能,比如導(dǎo)出PDF文件中的數(shù)據(jù),可以使用
          iText和Apache FOP,PDF Box庫。

          兩者都提供了有用的PDF相關(guān)功能,但iText更豐富、更好。

          12,日期和時(shí)間庫

          在Java 8之前,JDK的數(shù)據(jù)和時(shí)間庫有很多缺陷,因?yàn)樗鼈儾皇蔷€程安全的、不可變的和容易出錯(cuò)的。許多Java開發(fā)人員依賴于JodaTime
          來實(shí)現(xiàn)他們的日期和時(shí)間需求。

          從JDK 8開始,就沒有理由使用JodaTime?,因?yàn)镴DK 8的新的日期和時(shí)間API提供了所有這些功能,但是如果您使用的是較舊的Java版本,那么
          JodaTime是一個(gè)值得學(xué)習(xí)的庫。

          13,集合庫

          盡管JDK有豐富的集合庫,但也有一些第三方庫提供了更多的選項(xiàng),比如Apache Commons集合、Goldman
          Sachs(高盛公司)集合、谷歌集合和Trove。?

          Trove庫特別有用,因?yàn)樗鼮镴ava提供了高速的常規(guī)和基本集合。

          FastUtil
          是另一個(gè)類似的API。它擴(kuò)展了Java集合框架,提供了類型特定的映射、集合、列表和優(yōu)先級隊(duì)列,占用的內(nèi)存很少,訪問和插入也很快;它還提供了大型(64位)數(shù)組、集合和列表,并為二進(jìn)制文件和文本文件提供了快速、實(shí)用的I/O類。

          14,郵件API庫

          javax.mail和Apache Commons Email都提供了從Java發(fā)送電子郵件的API。它構(gòu)建在JavaMail
          API之上,其目的是簡化API。

          15,HTML轉(zhuǎn)換庫

          與JSON和XML類似,HMTL是許多人必須處理的另一種常見格式。謝天謝地,我們有了JSoup,它極大地簡化了在Java應(yīng)用程序中使用HTML的工作。


          它提供了一個(gè)非常方便的API,可以使用DOM、CSS和類似于jquery的方法來提取和操作數(shù)據(jù)。JSoup實(shí)現(xiàn)了HTML5規(guī)范,并像現(xiàn)代瀏覽器那樣將HTML解析為相同的DOM。

          16,加密庫

          apache Commons Codec包包含用于各種格式(如Base64和十六進(jìn)制)的簡單編碼器和解碼器。
          ?
          除了這些廣泛使用的編碼器和解碼器之外,codec包還維護(hù)了語音編碼實(shí)用程序的集合/

          17,嵌入式sql數(shù)據(jù)庫庫

          像H2這樣的內(nèi)存數(shù)據(jù)庫,它可以嵌入到Java應(yīng)用程序中。它們非常適合測試SQL腳本和運(yùn)行需要數(shù)據(jù)庫的單元測試。然而,H2并不是唯一的DB,您還可以選擇
          Apache Derby和HSQL。

          18,JDBC故障排除庫

          有一些很好的JDBC擴(kuò)展庫,它們可以簡化調(diào)試,比如P6spy。

          這個(gè)庫使數(shù)據(jù)庫數(shù)據(jù)能夠被無縫地?cái)r截和記錄,而不需要對應(yīng)用程序進(jìn)行任何代碼更改。您可以使用它們來記錄SQL查詢及其計(jì)時(shí)。
          ?例如,如果您在代碼中使用PreparedStatment和CallableStatement,這些庫可以使用參數(shù)記錄準(zhǔn)確的調(diào)用以及執(zhí)行所需的時(shí)間。
          19,序列化庫

          谷歌Protobuf是一種將結(jié)構(gòu)化數(shù)據(jù)編碼為一種高效且可擴(kuò)展格式的方法。它是Java序列化的更豐富和更好的選擇。建議有經(jīng)驗(yàn)的Java開發(fā)人員可以學(xué)習(xí)一下谷歌
          Protobuf。

          20,網(wǎng)絡(luò)庫

          一些有用的網(wǎng)絡(luò)庫是Netty和Apache MINA。如果您正在編寫一個(gè)需要執(zhí)行低級網(wǎng)絡(luò)任務(wù)的應(yīng)用程序,請考慮使用這些庫。



          以上就是每個(gè)Java開發(fā)人員都應(yīng)該使用的一些有用的庫。Java領(lǐng)域非常龐大,您會(huì)發(fā)現(xiàn)有大量的庫可以用來做不同的事情。

          ?

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                国产传媒一区 | 催眠巨肉黄暴辣文高h文 | 欧美一道 | 性爱基地 | 免费电影日本黄色 |