一般一个经验丰富的开发者, 一般都喜欢使用开源的第三方 API 库来进行开发, 毕竟这样能够提高开发效率, 并且能够简单快速的集成到项目中去, 而不用花更多的时间去在重复造一些无用的轮子, 多了解一些第三方库可以提高我们的开发效率, 下面就来看一下在开发过程中经常会用到的一些开发第三方库, 也可能不是太全, 就列举一些常见或者常用的吧.
1, 日志库
日志库是最常用的, 毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息, 从而很快的定位项目的发生的问题. 尽管 JDK 附带了自己的日志库, 但是还有更好的选择, 例如 Log4j,SLF4j 和 LogBack. 一般建议使用 SLF4j. 比如 Alibaba 开发手册上也是这样说的, 毕竟 SLF4J 使您的代码独立于任何特定的日志 API, 就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成.
2,JSON 转换库
在当今的 web 服务, 手机 API 接口开发和物联网世界中, JSON 已经成为将信息从客户端传送到服务器的首选协议. 它们已经取代了 xml, 成为以独立于平台的方式传输信息的首选方式. 不幸的是, JDK 没有 JSON 库. 但是, 有许多优秀的第三方库允许您解析和创建 JSON 消息, 比如 Jackson 和 Gson,FastJson.
3, 单元测试库库
单元测试是区分普通开发人员和优秀开发人员的最重要的东西. 程序员经常被给予不写单元测试的借口, 但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识, 包括 JUnit,Mockito 和 PowerMock.
4, 通用类库
Java 开发人员可以使用一些优秀的通用第三方库, 比如 Apache Commons 和谷歌 Guava. 我总是在我的项目中包含这些库, 因为它们简化了许多任务. 正如约书亚 • 布洛赫 (Joshua Bloch) 在《Effective Java》一书中正确指出的那样, 重新发明轮子是没有意义的. 我们应该使用经过测试的库, 而不是时不时地编写我们自己的程序. 对于开发人员来说, 熟悉 Apache Commons 和谷歌 Guava 是很有用的.
5,HTTP 库
虽然 JDK 中的 java.NET 包也能实现 HTTP 连接, 以及 Http 请求, 但是它的使用没有像 Apache HttpClient 和 HttpCore 这样的开源第三方库简单, 执行 HTTP 请求都得自己自己重复写大量的代码. 虽然 JDK 9 提供了对 HTTP 2.0 的支持和对 HTTP 的更好支持, 但我强烈建议所有 Java 开发人员熟悉流行的 HTTP 客户端请求库, 包括 HttpClient 和 HttpCore.
6,xml 解析库
有许多 xml 解析库, 包括 Xerces,JAXB,JAXP,Dom4j 和 Xstream.Xerces2 是 Apache Xerces 家族中下一代高性能, 完全兼容的 xml 解析器. 这个新版本的 Xerces 引入了 Xerces 本机接口(XNI), 这是一个用于构建解析器组件和配置的完整框架, 非常模块化, 易于编程. Apache Xerces2 解析器是 XNI 的参考实现, 但是可以使用 Xerces 本机接口编写其他解析器组件, 配置和解析器. Dom4j 是另一个用于 Java 应用程序的灵活 xml 框架.
7,Excel 库
信不信由你 -- 所有现实世界的应用程序都必须以某种形式与 Microsoft Office 交互. 许多应用程序需要提供在 Excel 中导出数据的功能, 如果必须从 Java 应用程序中导出数据, 则需要 Apache POI API. 这是一个非常丰富的库, 允许您从 Java 程序读取和写入 XLS 文件.
8, 字节码库
如果您正在编写一个生成代码或与字节码交互的框架或库, 那么您需要一个字节码库. 它们允许您读取和修改由应用程序生成的字节码.
Java 世界中流行的一些字节码库是 javassist 和 Cglib Nodep.Javassist 使得 JAVA 字节码操作非常简单. 它是一个用于编辑 Java 字节码的类库. ASM 是另一个有用的字节码编辑库.
9, 数据库连接池库
如果您正在与来自 Java 应用程序的数据库进行交互, 但是没有使用数据库连接池库, 那么您可能会遗漏一些内容. 由于在运行时创建数据库连接需要时间, 并且会使请求处理速度变慢, 因此总是建议使用 DB 连接库. 其中最流行的是 C3P0 和 DBCP, 以及阿里的德鲁伊(Druid).
在 Web 应用程序中, 它的 Web 服务器通常提供这些功能, 但是在核心 Java 应用程序中, 您需要将这些连接池库包含到类路径中, 以使用数据库连接池.
10, 消息库
与日志记录和数据库连接类似, 消息传递也是许多实际 Java 应用程序的一个常见特性.
Java 提供 JMS, 或者 Java 消息传递服务, 这不是 JDK 的一部分. 对于这个组件, 您需要包含一个单独的 jms.jar.
类似地, 如果您正在使用第三方消息传递协议, 比如 ActiveMQ,RabbitMQ, 那么, 您需要在您的应用程序类路径中使用第三方 JAR-ActiveMQ,RabbitMQ 的 JAR.
11,PDF 库
Microsoft Excel 类似, PDF 库是另一种常见的格式. 如果需要在应用程序中支持 PDF 功能, 比如导出 PDF 文件中的数据, 可以使用 iText 和 Apache FOP,PDF Box 库.
两者都提供了有用的 PDF 相关功能, 但 iText 更丰富, 更好.
12, 日期和时间库
在 Java 8 之前, JDK 的数据和时间库有很多缺陷, 因为它们不是线程安全的, 不可变的和容易出错的. 许多 Java 开发人员依赖于 JodaTime 来实现他们的日期和时间需求.
从 JDK 8 开始, 就没有理由使用 JodaTime, 因为 JDK 8 的新的日期和时间 API 提供了所有这些功能, 但是如果您使用的是较旧的 Java 版本, 那么 JodaTime 是一个值得学习的库.
13, 集合库
尽管 JDK 有丰富的集合库, 但也有一些第三方库提供了更多的选项, 比如 Apache Commons 集合, Goldman Sachs(高盛公司)集合, 谷歌集合和 Trove.
Trove 库特别有用, 因为它为 Java 提供了高速的常规和基本集合.
FastUtil 是另一个类似的 API. 它扩展了 Java 集合框架, 提供了类型特定的映射, 集合, 列表和优先级队列, 占用的内存很少, 访问和插入也很快; 它还提供了大型 (64 位) 数组, 集合和列表, 并为二进制文件和文本文件提供了快速, 实用的 I/O 类.
14, 邮件 API 库
javax.mail 和 Apache Commons Email 都提供了从 Java 发送电子邮件的 API. 它构建在 JavaMail API 之上, 其目的是简化 API.
15,html 转换库
与 JSON 和 xml 类似, HMTL 是许多人必须处理的另一种常见格式. 谢天谢地, 我们有了 JSoup, 它极大地简化了在 Java 应用程序中使用 HTML 的工作.
它提供了一个非常方便的 API, 可以使用 DOM,CSS 和类似于 jQuery 的方法来提取和操作数据. JSoup 实现了 HTML5 规范, 并像现代浏览器那样将 HTML 解析为相同的 DOM.
16, 加密库
apache Commons Codec 包包含用于各种格式 (如 Base64 和十六进制) 的简单编码器和解码器.
除了这些广泛使用的编码器和解码器之外, codec 包还维护了语音编码实用程序的集合 /
17, 嵌入式 sql 数据库库
像 H2 这样的内存数据库, 它可以嵌入到 Java 应用程序中. 它们非常适合测试 SQL 脚本和运行需要数据库的单元测试. 然而, H2 并不是唯一的 DB, 您还可以选择 Apache Derby 和 HSQL.
18,JDBC 故障排除库
有一些很好的 JDBC 扩展库, 它们可以简化调试, 比如 P6spy.
这个库使数据库数据能够被无缝地拦截和记录, 而不需要对应用程序进行任何代码更改. 您可以使用它们来记录 SQL 查询及其计时.
例如, 如果您在代码中使用 PreparedStatment 和 CallableStatement, 这些库可以使用参数记录准确的调用以及执行所需的时间.
19, 序列化库
谷歌 Protobuf 是一种将结构化数据编码为一种高效且可扩展格式的方法. 它是 Java 序列化的更丰富和更好的选择. 建议有经验的 Java 开发人员可以学习一下谷歌 Protobuf.
20, 网络库
一些有用的网络库是 Netty 和 Apache MINA. 如果您正在编写一个需要执行低级网络任务的应用程序, 请考虑使用这些库.
以上就是每个 Java 开发人员都应该使用的一些有用的库. Java 领域非常庞大, 您会发现有大量的库可以用来做不同的事情.
来源: https://www.cnblogs.com/Hackerman/p/12577340.html