新聞中心
優(yōu)秀且經(jīng)驗(yàn)豐富的 Java 開(kāi)發(fā)人員的特點(diǎn)之一是對(duì) API 的廣泛了解,包括 JDK 和第三方庫(kù)。如何使用現(xiàn)有的 API 進(jìn)行開(kāi)發(fā),而不是為常見(jiàn)的東西編寫(xiě)新的代碼。是提升開(kāi)發(fā)效率必選之路。

創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的龍江網(wǎng)站建設(shè)公司,龍江接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行龍江網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
一般來(lái)說(shuō),我會(huì)為日常項(xiàng)目提供有用的庫(kù),包括 Log4j 等日志庫(kù)、Jackson 等 JSON 解析庫(kù)以及 JUnit 和 Mockito 等單元測(cè)試 API。如果您需要在項(xiàng)目中使用它們,則可以在項(xiàng)目的類(lèi)路徑中包含這些庫(kù)的 JAR 以開(kāi)始使用它們,也可以使用Maven進(jìn)行依賴(lài)管理。
對(duì) Java 程序員有用的開(kāi)源庫(kù)
下面是收集的一些有用的第三方庫(kù),Java 開(kāi)發(fā)人員可以在他們的應(yīng)用程序中使用它們來(lái)完成很多有用的任務(wù)。為了使用這些庫(kù),Java 開(kāi)發(fā)人員應(yīng)該熟悉這一點(diǎn),這就是本文的重點(diǎn)。如果您有一個(gè)想法,那么您可以研究該庫(kù)并使用它。
1. 日志庫(kù)
日志庫(kù)非常常見(jiàn),因?yàn)槟诿總€(gè)項(xiàng)目中都需要它們。它們對(duì)于服務(wù)器端應(yīng)用程序來(lái)說(shuō)是最重要的,因?yàn)槿罩局环胖迷谀梢钥吹綉?yīng)用程序正在發(fā)生什么的地方。盡管 JDK 附帶了自己的日志庫(kù),但仍有更好的替代方案可用,例如 Log4j、SLF4j 和 LogBack。
Java 開(kāi)發(fā)人員應(yīng)該熟悉日志庫(kù)的優(yōu)缺點(diǎn),并知道為什么使用 SLF4j 比普通的 Log4j 更好。
2. JSON解析庫(kù)
在當(dāng)今的 Web 服務(wù)和物聯(lián)網(wǎng)世界中,JSON 已成為將信息從客戶(hù)端傳輸?shù)椒?wù)器的首選協(xié)議。它們已取代 XML,成為以獨(dú)立于平臺(tái)的方式傳輸信息的首選方式。
不幸的是,JDK 沒(méi)有JSON 庫(kù)。但是,有許多優(yōu)秀的第三方庫(kù)可以讓您解析和創(chuàng)建 JSON 消息,例如 Jackson 和 Gson。
Java Web 開(kāi)發(fā)人員應(yīng)該至少熟悉這些庫(kù)中的一個(gè)。
3. 單元測(cè)試庫(kù)
單元測(cè)試是將普通開(kāi)發(fā)人員與優(yōu)秀開(kāi)發(fā)人員區(qū)分開(kāi)來(lái)的最重要的事情。程序員經(jīng)常得到不編寫(xiě)單元測(cè)試的借口,但避免單元測(cè)試的最常見(jiàn)借口是缺乏流行單元測(cè)試庫(kù)的經(jīng)驗(yàn)和知識(shí),包括 JUnit、Mockito 和 PowerMock。
4. 通用庫(kù)
Java 開(kāi)發(fā)人員可以使用一些優(yōu)秀的通用第三方庫(kù),例如 Apache Commons 和 Google Guava。我總是在我的項(xiàng)目中包含這些庫(kù),因?yàn)樗鼈兒?jiǎn)化了很多任務(wù)。關(guān)注公眾號(hào):碼猿技術(shù)專(zhuān)欄,回復(fù)關(guān)鍵詞:1111 獲取阿里內(nèi)部Java性能調(diào)優(yōu)手冊(cè)!
重新發(fā)明輪子是沒(méi)有意義的。我們應(yīng)該更喜歡使用久經(jīng)考驗(yàn)的庫(kù),而不是時(shí)不時(shí)地編寫(xiě)我們自己的例程。
Java 開(kāi)發(fā)人員最好熟悉 Google Guava 和 Apache Commons 庫(kù)。
5. HTTP 庫(kù)
我不喜歡 JDK 的一件事是它們?nèi)狈?duì) HTTP 的支持。雖然您可以使用包中的類(lèi)建立 HTTP 連接 java.net,但使用開(kāi)源第三方庫(kù)(如 Apache HttpClient 和 HttpCore)并不容易或無(wú)縫。
盡管 JDK 9 帶來(lái)了對(duì) HTTP 2.0 的支持以及對(duì) HTTP 的更好支持,但我強(qiáng)烈建議所有 Java 開(kāi)發(fā)人員熟悉流行的 HTTP 客戶(hù)端庫(kù),包括 HttpClient 和 HttpCore。
6. XML 解析庫(kù)
有許多 XML 解析庫(kù),包括 Xerces、JAXB、JAXP、Dom4j 和 Xstream。Xerces2 是 Apache Xerces 系列中的下一代高性能、完全兼容的 XML 解析器。這個(gè)新版本的 Xerces 引入了 Xerces Native Interface (XNI),這是一個(gè)用于構(gòu)建解析器組件和配置的完整框架,它非常模塊化且易于編程。
Apache Xerces2 解析器是 XNI 的參考實(shí)現(xiàn),但其他解析器組件、配置和解析器可以使用 Xerces Native Interface 編寫(xiě)。Dom4j 是另一個(gè)用于 Java 應(yīng)用程序的靈活 XML 框架。
7. Excel 閱讀庫(kù)
信不信由你——所有現(xiàn)實(shí)世界的應(yīng)用程序都必須以某種形式與 Microsoft Office 交互。許多應(yīng)用程序需要提供在 Excel 中導(dǎo)出數(shù)據(jù)的功能,如果您必須從 Java 應(yīng)用程序中執(zhí)行相同操作,則需要 Apache POI API。
這是一個(gè)非常豐富的庫(kù),允許您 從 Java 程序讀取和寫(xiě)入 XLS 文件。您可以查看該鏈接以獲取在核心 Java 應(yīng)用程序中讀取 Excel 文件的工作示例。
8. 字節(jié)碼庫(kù)
如果您正在編寫(xiě)生成代碼或與字節(jié)碼交互的框架或庫(kù),那么您需要一個(gè)字節(jié)碼庫(kù)。
它們?cè)试S您讀取和修改應(yīng)用程序生成的字節(jié)碼。Java 世界中一些流行的字節(jié)碼庫(kù)是 javassist 和 Cglib Nodep。
Javassist(JAVA 編程助手)使 Java 字節(jié)碼操作變得非常簡(jiǎn)單。它是一個(gè)用于在 Java 中編輯字節(jié)碼的類(lèi)庫(kù)。ASM 是另一個(gè)有用的字節(jié)碼編輯庫(kù)。
9. 數(shù)據(jù)庫(kù)連接池庫(kù)
如果您從 Java 應(yīng)用程序與數(shù)據(jù)庫(kù)進(jìn)行交互,但不使用數(shù)據(jù)庫(kù)連接池庫(kù),那么,您會(huì)丟失一些東西。
由于在運(yùn)行時(shí)創(chuàng)建數(shù)據(jù)庫(kù)連接需要時(shí)間并且使請(qǐng)求處理速度變慢,因此始終建議使用數(shù)據(jù)庫(kù)連接庫(kù)。一些流行的是 Commons Pool 和 DBCP。
在 Web 應(yīng)用程序中,它的 Web 服務(wù)器通常提供這些功能,但在核心 Java 應(yīng)用程序中,您需要將這些連接池庫(kù)包含到您的類(lèi)路徑中才能使用數(shù)據(jù)庫(kù)連接池。
10. 消息庫(kù)
與日志記錄和數(shù)據(jù)庫(kù)連接類(lèi)似,消息傳遞也是許多實(shí)際 Java 應(yīng)用程序的共同特征。
Java 提供 JMS 或 Java 消息傳遞服務(wù),它不是 JDK 的一部分。對(duì)于此組件,您需要包含一個(gè)單獨(dú)的 jms.jar
同樣,如果您使用第三方消息傳遞協(xié)議,例如 Tibco RV,那么您需要 tibrv.jar 在應(yīng)用程序類(lèi)路徑中使用第三方 JAR 。
11. PDF 庫(kù)
與 Microsoft Excel 類(lèi)似,PDF 庫(kù)是另一種普遍存在的格式。如果您需要在應(yīng)用程序中支持 PDF 功能,例如 在 PDF 文件中導(dǎo)出數(shù)據(jù),您可以使用 iText 和 Apache FOP 庫(kù)。關(guān)注公眾號(hào):碼猿技術(shù)專(zhuān)欄,回復(fù)關(guān)鍵詞:1111 獲取阿里內(nèi)部Java性能調(diào)優(yōu)手冊(cè)!
兩者都提供有用的 PDF 相關(guān)功能,但 iText 更豐富更好。
12. 日期和時(shí)間庫(kù)
在 Java 8 之前,JDK 的數(shù)據(jù)和時(shí)間庫(kù)有很多缺陷,因?yàn)樗鼈儾皇蔷€(xiàn)程安全的、不可變的和容易出錯(cuò)的。許多 Java 開(kāi)發(fā)人員依靠 JodaTime 來(lái)實(shí)現(xiàn)他們的日期和時(shí)間要求。
從 JDK 8 開(kāi)始,沒(méi)有理由使用 Joda,因?yàn)槟梢栽?JDK 8 的新日期和時(shí)間 API中獲得所有這些功能,但是如果您使用的是較舊的 Java 版本,那么 JodaTime 是一個(gè)值得學(xué)習(xí)的庫(kù)。??
?
13. 集合庫(kù)
盡管 JDK 擁有豐富的集合庫(kù),但也有一些第三方庫(kù)提供了更多選項(xiàng),例如 Apache Commons 集合、Goldman Sachs 集合、Google 集合和 Trove。
Trove 庫(kù)特別有用,因?yàn)樗鼮?Java 提供了高速的常規(guī)和原始集合。
FastUtil 是另一個(gè)類(lèi)似的 API。它通過(guò)提供特定類(lèi)型的映射、集合、列表和優(yōu)先級(jí)隊(duì)列來(lái)擴(kuò)展 Java 集合框架,這些映射、集合、列表和優(yōu)先級(jí)隊(duì)列具有較小的內(nèi)存占用、快速訪(fǎng)問(wèn)和插入;它還提供大(64 位)數(shù)組、集合和列表,以及用于二進(jìn)制和文本文件的快速、實(shí)用的 I/O 類(lèi)。
14. 電子郵件 API
javax.mail 和 Apache Commons Email 都提供了用于從 Java 發(fā)送電子郵件的 API 。它建立在 JavaMail API 之上,旨在簡(jiǎn)化它。
15. HTML 解析庫(kù)
與JSON和XML類(lèi)似,HMTL 是我們?cè)S多人必須處理的另一種常見(jiàn)格式。值得慶幸的是,我們有 JSoup,它極大地簡(jiǎn)化了在 Java 應(yīng)用程序中使用 HTML。
您可以使用JSoup不僅解析 HTML,還可以創(chuàng)建 HTML 文檔
它提供了一個(gè)非常方便的 API 用于提取和操作數(shù)據(jù),使用最好的DOM、CSS 和類(lèi)似 jquery 的方法。JSoup 實(shí)現(xiàn)了 WHATWG HTML5 規(guī)范并將HTML解析為與現(xiàn)代瀏覽器相同的 DOM。
16.密碼庫(kù)
Apache Commons Codec 包包含各種格式的簡(jiǎn)單編碼器和解碼器,例如Base64和 Hexadecimal。
除了這些廣泛使用的編碼器和解碼器之外,編解碼器包還維護(hù)了一組語(yǔ)音編碼實(shí)用程序。
17. 嵌入式 SQL 數(shù)據(jù)庫(kù)庫(kù)
我真的很喜歡像 H2 這樣的內(nèi)存數(shù)據(jù)庫(kù),你可以將它嵌入到你的 Java 應(yīng)用程序中。它們非常適合測(cè)試您的 SQL 腳本和運(yùn)行需要數(shù)據(jù)庫(kù)的單元測(cè)試。但是,H2 不是唯一的 DB,您還可以選擇 Apache Derby 和 HSQL。
18. JDBC 故障排除庫(kù)
有一些很好的 JDBC 擴(kuò)展庫(kù)可以讓調(diào)試更容易,比如 P6spy。
這是一個(gè)庫(kù),可以無(wú)縫攔截和記錄數(shù)據(jù)庫(kù)數(shù)據(jù),而無(wú)需更改應(yīng)用程序的代碼。您可以使用它們來(lái)記錄 SQL 查詢(xún)及其時(shí)間。
例如,如果您在代碼中使用PreparedStatment和CallableStatement,這些庫(kù)可以記錄帶有參數(shù)的準(zhǔn)確調(diào)用以及執(zhí)行所需的時(shí)間。
19. 序列化庫(kù)
Google 協(xié)議緩沖區(qū)是一種以高效且可擴(kuò)展的格式對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行編碼的方法。它是Java 序列化的更豐富和更好的替代方案。我強(qiáng)烈建議有經(jīng)驗(yàn)的 Java 開(kāi)發(fā)人員學(xué)習(xí) Google Protobuf。
20. 網(wǎng)絡(luò)庫(kù)
一些有用的網(wǎng)絡(luò)庫(kù)是 Netty 和 Apache MINA。如果您正在編寫(xiě)需要執(zhí)行低級(jí)網(wǎng)絡(luò)任務(wù)的應(yīng)用程序,請(qǐng)考慮使用這些庫(kù)。??
?
以上就是今天小編分享給大家的一些工作中常用的庫(kù),了解并熟練的運(yùn)用他們,不僅可以大大提高你的開(kāi)發(fā)效率,也可以學(xué)習(xí)優(yōu)秀代碼的設(shè)計(jì),提高自己的編碼能力。
文章題目:優(yōu)秀Javaer都在使用的類(lèi)庫(kù),真香!
本文地址:http://fisionsoft.com.cn/article/ccehsgd.html


咨詢(xún)
建站咨詢(xún)
