# 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 都不错!

相关文章
相关标签/搜索