# JAVA 之 咱們都要熟悉的基礎功能類庫

述說幾個JAVA編程中常常使用的類庫。java

日誌

SLF4J 是個很好的選擇,比 Log4J 要好一些。web

JSON解析庫

JacksonGson 是比較好的選擇。固然,若是是簡單使用的話,fastjson 也不錯。算法

  • Jackson所依賴的jar包較少,簡單易用而且性能也要相對高些。
  • Jackson社區相對比較活躍,更新速度也比較快。
  • Jackson對於複雜類型的json轉換bean會出現問題,一些集合Map,List的轉換出現問題。
  • Jackson對於複雜類型的bean轉換Json,轉換的json格式不是標準的Json格式。
  • Gson是目前功能最全的Json解析神器,Gson當初是爲因應Google公司內部需求而由Google自行研發而來。
  • Gson的應用主要爲toJson與fromJson兩個轉換函數,無依賴,不須要例外額外的jar,可以直接跑在JDK上。
  • Gson在功能上面無可挑剔,可是性能上面比FastJson有所差距。
  • Fastjson是一個Java語言編寫的高性能的JSON處理器,由阿里巴巴公司開發。
  • Fastjson無依賴,不須要例外額外的jar,可以直接跑在JDK上。
  • FastJson在複雜類型的Bean轉換Json上會出現一些問題,可能會出現引用的類型,致使Json轉換出錯,須要制定引用。
  • FastJson採用首創的算法,將parse的速度提高到極致,超過全部json庫。

綜上4種Json技術的比較,在項目選型的時候可使用Google的Gson和阿里巴巴的FastJson兩種並行使用。
若是隻是功能要求,沒有性能要求,可使用google的Gson。
若是有性能上面的要求可使用Gson將bean轉換json確保數據的正確,使用FastJson將Json轉換Bean。spring

單元測試庫

常見的單測框架有 JUnit , MockitoPowerMock數據庫

Http 庫

HttpClientokHttp 都不錯。JDK11 已經有client的基礎庫,不須要Http庫了。編程

XML解析庫

Xerces2是下一代高性能,徹底兼容的XML解析工具,並提供了一個完整、兼容標準的 XNI 規範實現。json

Excel讀寫庫

Apache POI API 是個很好的選擇。api

字節碼庫

javassistASMCglib Nodep 能夠供你選擇。Javassist使得JAVA字節碼操做很是簡單,建議使用。springboot

數據庫鏈接池庫

  • 第二代鏈接池HikariCP 在springboot中已經成爲默認選擇,起源於BoneCP,精簡到極致,適合微服務使用。
  • DRUID 是阿里巴巴開源的,擴展性比較好,支持SQL攔截,內置監控比較強大,在大型複雜項目中比較建議使用。
  • BoneCP能夠備選,不建議用。

消息傳遞庫

Java提供了JMS Java消息服務,但這不是JDK的一部分,你須要單獨的引入jms.jar 。若是準備使用第三方消息傳遞協議, Tibco RV 是個不錯的選擇。網絡

PDF處理庫

iTextApache FOP 類庫來處理。

日期和時間庫

JDK8 以後已經不須要這個了。

集合類庫

Trove可使用。

郵件API

javax.mailApache Commons Email 提供了發送郵件的api。它們創建在JavaMail API的基礎上,提供簡化的用法。

HTML解析庫

jsoup吧。

加密庫

Apache Commons家族中的Commons Codec 就提供了一些公共的編解碼實現。好比 Base64, Hex, MD5,Phonetic and URLs

嵌入式SQL數據庫庫

H2Apache DerbyHSQL

JDBC故障診斷庫

P6spy

序列化庫

Google Protocol Buffer

底層網絡庫

NettyApache MINA

Jwt

com.auth0 / java-jwt / 3.3.0io.jsonwebtoken / jjwt / 0.9.0 都不錯!

相關文章
相關標籤/搜索