精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

頂級Javaer都在使用的類庫!

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-02-16 10:11 ? 次閱讀

優秀且經驗豐富的 Java 開發人員的特點之一是對 API 的廣泛了解,包括 JDK 和第三方庫。如何使用現有的 API 進行開發,而不是為常見的東西編寫新的代碼。是提升開發效率必選之路。

一般來說,我會為日常項目提供有用的庫,包括 Log4j 等日志庫、Jackson 等 JSON 解析庫以及 JUnit 和 Mockito 等單元測試 API。如果您需要在項目中使用它們,則可以在項目的類路徑中包含這些庫的 JAR 以開始使用它們,也可以使用Maven進行依賴管理。

對 Java 程序員有用的開源庫

下面是收集的一些有用的第三方庫,Java 開發人員可以在他們的應用程序中使用它們來完成很多有用的任務。為了使用這些庫,Java 開發人員應該熟悉這一點,這就是本文的重點。如果您有一個想法,那么您可以研究該庫并使用它。

1. 日志庫

日志庫非常常見,因為您在每個項目中都需要它們。它們對于服務器端應用程序來說是最重要的,因為日志只放置在您可以看到應用程序正在發生什么的地方。盡管 JDK 附帶了自己的日志庫,但仍有更好的替代方案可用,例如 Log4j、SLF4j 和 LogBack。

Java 開發人員應該熟悉日志庫的優缺點,并知道為什么使用 SLF4j 比普通的 Log4j 更好。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

2. JSON解析庫

在當今的 Web 服務和物聯網世界中,JSON 已成為將信息從客戶端傳輸到服務器的首選協議。它們已取代 XML,成為以獨立于平臺的方式傳輸信息的首選方式。

不幸的是,JDK 沒有JSON 庫。但是,有許多優秀的第三方庫可以讓您解析和創建 JSON 消息,例如 Jackson 和 Gson。

Java Web 開發人員應該至少熟悉這些庫中的一個。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

3. 單元測試庫

單元測試是將普通開發人員與優秀開發人員區分開來的最重要的事情。程序員經常得到不編寫單元測試的借口,但避免單元測試的最常見借口是缺乏流行單元測試庫的經驗和知識,包括 JUnit、Mockito 和 PowerMock。

f1ceb3f2-ad3d-11ed-bfe3-dac502259ad0.png

4. 通用庫

Java 開發人員可以使用一些優秀的通用第三方庫,例如 Apache Commons 和 Google Guava。我總是在我的項目中包含這些庫,因為它們簡化了很多任務。

重新發明輪子是沒有意義的。我們應該更喜歡使用久經考驗的庫,而不是時不時地編寫我們自己的例程。

f1e015f2-ad3d-11ed-bfe3-dac502259ad0.jpg

Java 開發人員最好熟悉 Google Guava 和 Apache Commons 庫。

5. HTTP 庫

我不喜歡 JDK 的一件事是它們缺乏對 HTTP 的支持。雖然您可以使用包中的類建立 HTTP 連接 java.net,但使用開源第三方庫(如 Apache HttpClient 和 HttpCore)并不容易或無縫。

f1f5fd86-ad3d-11ed-bfe3-dac502259ad0.jpg

盡管 JDK 9 帶來了對 HTTP 2.0 的支持以及對 HTTP 的更好支持,但我強烈建議所有 Java 開發人員熟悉流行的 HTTP 客戶端庫,包括 HttpClient 和 HttpCore。

6. XML 解析庫

有許多 XML 解析庫,包括 Xerces、JAXB、JAXP、Dom4j 和 Xstream。Xerces2 是 Apache Xerces 系列中的下一代高性能、完全兼容的 XML 解析器。這個新版本的 Xerces 引入了 Xerces Native Interface (XNI),這是一個用于構建解析器組件和配置的完整框架,它非常模塊化且易于編程

f20d84ba-ad3d-11ed-bfe3-dac502259ad0.jpg

Apache Xerces2 解析器是 XNI 的參考實現,但其他解析器組件、配置和解析器可以使用 Xerces Native Interface 編寫。Dom4j 是另一個用于 Java 應用程序的靈活 XML 框架。

7. Excel 閱讀庫

信不信由你——所有現實世界的應用程序都必須以某種形式與 Microsoft Office 交互。許多應用程序需要提供在 Excel 中導出數據的功能,如果您必須從 Java 應用程序中執行相同操作,則需要 Apache POI API。

這是一個非常豐富的庫,允許您 從 Java 程序讀取和寫入 XLS 文件。您可以查看該鏈接以獲取在核心 Java 應用程序中讀取 Excel 文件的工作示例。

8. 字節碼庫

如果您正在編寫生成代碼或與字節碼交互的框架或庫,那么您需要一個字節碼庫。

它們允許您讀取和修改應用程序生成的字節碼。Java 世界中一些流行的字節碼庫是 javassist 和 Cglib Nodep。

f225a950-ad3d-11ed-bfe3-dac502259ad0.jpg

Javassist(JAVA 編程助手)使 Java 字節碼操作變得非常簡單。它是一個用于在 Java 中編輯字節碼的類庫。ASM 是另一個有用的字節碼編輯庫。

9. 數據庫連接池庫

如果您從 Java 應用程序與數據庫進行交互,但不使用數據庫連接池庫,那么,您會丟失一些東西。

由于在運行時創建數據庫連接需要時間并且使請求處理速度變慢,因此始終建議使用數據庫連接庫。一些流行的是 Commons Pool 和 DBCP。

在 Web 應用程序中,它的 Web 服務器通常提供這些功能,但在核心 Java 應用程序中,您需要將這些連接池庫包含到您的類路徑中才能使用數據庫連接池。

10. 消息庫

與日志記錄和數據庫連接類似,消息傳遞也是許多實際 Java 應用程序的共同特征。

Java 提供 JMS 或 Java 消息傳遞服務,它不是 JDK 的一部分。對于此組件,您需要包含一個單獨的 jms.jar

f23343d0-ad3d-11ed-bfe3-dac502259ad0.jpg

同樣,如果您使用第三方消息傳遞協議,例如 Tibco RV,那么您需要 tibrv.jar 在應用程序類路徑中使用第三方 JAR 。

11. PDF 庫

與 Microsoft Excel 類似,PDF 庫是另一種普遍存在的格式。如果您需要在應用程序中支持 PDF 功能,例如 在 PDF 文件中導出數據,您可以使用 iText 和 Apache FOP 庫。

兩者都提供有用的 PDF 相關功能,但 iText 更豐富更好。

f244554e-ad3d-11ed-bfe3-dac502259ad0.jpg

12. 日期和時間庫

在 Java 8 之前,JDK 的數據和時間庫有很多缺陷,因為它們不是線程安全的、不可變的和容易出錯的。許多 Java 開發人員依靠 JodaTime 來實現他們的日期和時間要求。

從 JDK 8 開始,沒有理由使用 Joda,因為您可以在 JDK 8 的新日期和時間 API中獲得所有這些功能,但是如果您使用的是較舊的 Java 版本,那么 JodaTime 是一個值得學習的庫。

f259a566-ad3d-11ed-bfe3-dac502259ad0.jpg

13. 集合庫

盡管 JDK 擁有豐富的集合庫,但也有一些第三方庫提供了更多選項,例如 Apache Commons 集合、Goldman Sachs 集合、Google 集合和 Trove。

Trove 庫特別有用,因為它為 Java 提供了高速的常規和原始集合。

f2727ed8-ad3d-11ed-bfe3-dac502259ad0.jpg

FastUtil 是另一個類似的 API。它通過提供特定類型的映射、集合、列表和優先級隊列來擴展 Java 集合框架,這些映射、集合、列表和優先級隊列具有較小的內存占用、快速訪問和插入;它還提供大(64 位)數組、集合和列表,以及用于二進制和文本文件的快速、實用的 I/O 類。

14. 電子郵件 API

javax.mail 和 Apache Commons Email 都提供了用于從 Java 發送電子郵件的 API 。它建立在 JavaMail API 之上,旨在簡化它。

f281791a-ad3d-11ed-bfe3-dac502259ad0.jpg

15. HTML 解析庫

與JSON和XML類似,HMTL 是我們許多人必須處理的另一種常見格式。值得慶幸的是,我們有 JSoup,它極大地簡化了在 Java 應用程序中使用 HTML。

您可以使用JSoup不僅解析 HTML,還可以創建 HTML 文檔

f295f43a-ad3d-11ed-bfe3-dac502259ad0.jpg

它提供了一個非常方便的 API 用于提取和操作數據,使用最好的DOM、CSS 和類似 jquery 的方法。JSoup 實現了 WHATWG HTML5 規范并將HTML解析為與現代瀏覽器相同的 DOM。

16.密碼庫

Apache Commons Codec 包包含各種格式的簡單編碼器和解碼器,例如Base64和 Hexadecimal。

除了這些廣泛使用的編碼器和解碼器之外,編解碼器包還維護了一組語音編碼實用程序。

f2afe1e2-ad3d-11ed-bfe3-dac502259ad0.jpg

17. 嵌入式 SQL 數據庫庫

我真的很喜歡像 H2 這樣的內存數據庫,你可以將它嵌入到你的 Java 應用程序中。它們非常適合測試您的 SQL 腳本和運行需要數據庫的單元測試。但是,H2 不是唯一的 DB,您還可以選擇 Apache Derby 和 HSQL。

f2c48f48-ad3d-11ed-bfe3-dac502259ad0.jpg

18. JDBC 故障排除庫

有一些很好的 JDBC 擴展庫可以讓調試更容易,比如 P6spy。

這是一個庫,可以無縫攔截和記錄數據庫數據,而無需更改應用程序的代碼。您可以使用它們來記錄 SQL 查詢及其時間。

例如,如果您在代碼中使用PreparedStatment和CallableStatement,這些庫可以記錄帶有參數的準確調用以及執行所需的時間。

f2d5e22a-ad3d-11ed-bfe3-dac502259ad0.jpg

19. 序列化庫

Google 協議緩沖區是一種以高效且可擴展的格式對結構化數據進行編碼的方法。它是Java 序列化的更豐富和更好的替代方案。我強烈建議有經驗的 Java 開發人員學習 Google Protobuf。

f2e8476c-ad3d-11ed-bfe3-dac502259ad0.jpg

20. 網絡

一些有用的網絡庫是 Netty 和 Apache MINA。如果您正在編寫需要執行低級網絡任務的應用程序,請考慮使用這些庫。

f2f718c8-ad3d-11ed-bfe3-dac502259ad0.jpg

以上就是今天小編分享給大家的一些工作中常用的庫,了解并熟練的運用他們,不僅可以大大提高你的開發效率,也可以學習優秀代碼的設計,提高自己的編碼能力。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2960

    瀏覽量

    104563
  • HTTP
    +關注

    關注

    0

    文章

    501

    瀏覽量

    31076
  • 應用程序
    +關注

    關注

    37

    文章

    3245

    瀏覽量

    57614

原文標題:頂級Javaer都在使用的類庫,真香!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ArkTS語言基礎-解析

    ArkTS語言基礎是HarmonyOS系統上為應用開發者提供的常用基礎能力,主要包含能力如下圖所示。 圖1 ArkTS語言基礎能力示意圖 提供[異步并發和多線程并發]的能力。
    發表于 02-20 16:44

    tjCFeng的【Allwinner ClassA20分析】匯總

    @tjCFeng 大神涉獵果然廣泛,連Allwinner(全志) ClassA20都在研究,現在把大神的Allwinner ClassA20分析帖匯總下1.ARM上的Delphi
    發表于 04-25 00:30

    調用.NET出現的錯誤

    也搞不清楚為什么,為什么同一個動態因為API不一樣出現異常呢。動態庫里的方法我都在.NET平臺上試過。沒有什么問題,請大家幫我解決一下。
    發表于 01-13 15:06

    c#常用匯總

    珍藏了多年的,rar格式,里面都是源碼,有excel導入導出的,Json,條碼,加密
    發表于 10-09 07:01

    CSharp知識,CSharp技術

    CSharp知識,CSharp技術
    發表于 12-26 12:12 ?72次下載
    CSharp知識<b class='flag-5'>類</b><b class='flag-5'>庫</b>,CSharp技術

    java下載,java大全

    java: Java是Sun公司推出的新型面向對象程序設計語言。它將面向對象、平臺無關性、穩固性、安全性、多線程等諸多特性集于一身,為用戶提供了一個良好的程序設計環境。
    發表于 04-28 14:34 ?0次下載

    scikit-learn K近鄰法使用的經驗總結

    本文對scikit-learn中KNN相關的使用做了一個總結,主要關注于調參時的一個經驗總結,且非常詳細地介紹了
    的頭像 發表于 01-13 11:49 ?3195次閱讀
    scikit-learn K近鄰法<b class='flag-5'>類</b><b class='flag-5'>庫</b>使用的經驗總結

    關于STM32的四嵌入式軟件 (

    關于STM32的四嵌入式軟件(
    的頭像 發表于 03-04 09:27 ?3144次閱讀

    如何在python中安裝和使用頂級算法?

    以及每種算法的不同配置。在本教程中,你將發現如何在 python 中安裝和使用頂級算法。 完成本教程后,你將知道: 聚是在輸入數據的特征空間中查找自然組的無監督問題。 對于所有數據集,有許多不同的聚
    的頭像 發表于 03-12 18:23 ?2209次閱讀

    IC器件的元件如何創建

    對于IC器件的元件,通常采用封裝向導進行創建,下面以REF2030AIDDCR為例。
    的頭像 發表于 10-10 14:53 ?1997次閱讀

    如何在 Python 中安裝和使用頂級算法

    有許多聚算法可供選擇,對于所有情況,沒有單一的最佳聚算法。相反,最好探索一系列聚算法以及每種算法的不同配置。在本教程中,你將發現如何在 python 中安裝和使用頂級
    的頭像 發表于 05-22 09:13 ?565次閱讀
    如何在 Python 中安裝和使用<b class='flag-5'>頂級</b>聚<b class='flag-5'>類</b>算法

    如何使用mbLib中的CMBMenu創建菜單

    電子發燒友網站提供《如何使用mbLib中的CMBMenu創建菜單.zip》資料免費下載
    發表于 06-14 15:24 ?0次下載
    如何使用<b class='flag-5'>庫</b>mbLib中的CMBMenu<b class='flag-5'>類</b>創建菜單

    不同GPIO的區別

    重點來講解一下什么是,如何使用,以及不同的GPIO的區別。
    的頭像 發表于 07-02 15:03 ?961次閱讀
    不同GPIO<b class='flag-5'>類</b><b class='flag-5'>庫</b>的區別

    HarmonyOS語言基礎開發指南上線啦!

    語言基礎提供哪些功能?多線程并發如何實現?TaskPool(任務池)和Worker在實現和使用場景上有何不同? 針對開發者關注的并發等語言基礎的相關能力,我們在新推出的語言基礎
    的頭像 發表于 10-18 16:20 ?556次閱讀
    HarmonyOS語言基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>開發指南上線啦!

    鴻蒙OpenHarmony大合集:【語言基礎

    本示例集合語言基礎的各個子模塊,展示了各個模塊的基礎功能
    的頭像 發表于 04-29 16:38 ?545次閱讀
    鴻蒙OpenHarmony大合集:【語言基礎<b class='flag-5'>類</b><b class='flag-5'>庫</b>】