Java 库:为 Java 程序员而生的 10 + 最佳库

众所周知,Java 的生态环境至关庞大,包含了数量至关可观的官方及第三方库。利用这些库,能够解决在用 Java 开发时遇到的各种问题,让开发效率获得显著提高。java

举些例子,最经常使用的官方库有 java.lang、java.util、java.io、java.sql、java.net 等;而至于目前最流行的第三方库,就有 Junit、SLF4J、Google Guava、XStream、JSoup、Gson、Joda Time 等,能够说是不胜枚举。sql

file

我到底须要用到哪些 Java 库呢?

某些库再热门也好,你的项目也未必适用。然而即使如此,大部分项目实际上都仍是须要进行单元测试、日志记录、序列化、代码规范化等工做的,所以用一些相关的 Java 库去解决问题,仍是不错的选择。数据库

下面,就让我来介绍一些能够用来解决常见开发问题的热门 Java 库吧。编程

1. JUnit

JUnit 起源于 xUnit 家族的单元测试框架,目前能够说是最知名及经常使用的测试框架。经过 JUnit,能够轻松地写出可重复测试的代码。早期版本的 JUnit 属于 junit.framework 包;而从 JUnit 4 开始,便转移到了 org.junit 包。segmentfault

JUnit 的一大特点在于给开发者提供了简洁的图形界面,如此一来编写测试代码便更为轻松,开发的进度也得以显著加快。后端

Junit 容许多个测试一个接一个,或是并发同时执行,而且会实时返回测试结果,并且还带有进度条,提示开发者测试进度如何。通常当测试正常进行时,进度条是绿的;而当遇到了错误,就会变红。浏览器

此外,JUnit 还容许开发者建立测试套件 (Test Suite) 来查看、检测总体的测试进度及测试期间发生的反作用。缓存

对于不少项目而言,单元测试是很是重要的。JUnit 之因此可以成为 Java 圈中最热门的测试库,正是由于它既简洁又高效。安全

2. SLF4J

SLF4J 或 Simple Logging Facade for Java,为不一样的框架提供了一个抽象概念,容许开发人员在部署时插入任何框架。SLF4J 的功能在于基于外观模式的简单日志 API,并将客户端 API 与日志后端分开。并发

经过向 classpath 中添加所需的绑定,能够发现其后端。因为客户端 API 和后端彻底解耦,所以它能够集成到任何框架或现有的代码片断。

建立这个有用的机制的人是 Ceki Gülcü。

3. Google Guava

Google Guava 是 Java 编程的另外一个受欢迎的 Java 核心库,它是开源的,由 Googl 开发的。Google Guava 项目中包含的库可用于天天在谷歌上开发/升级的 Java 的产品。

Google Guava 软件包中的库或多或少是对核心库的对应部分有加强功能,并使编程更加高效和有效。Guava 包括内存缓存、不可变集合、函数类型、图形库和可用于 I/O、散列、并发、原语、字符串处理、反射等等的 API 实用程序。

4. XStream

当涉及将对象序列化到 XML 中时,XStream 库是开发人员值得信赖的选择。 该库容许开发人员轻松地将对象序列化为 XML 并返回。

反射是这里的关键,用于识别在运行时序列化的对象图的结构。 对象不须要修改。 任何内部字段均可以使用 XStream 序列化。

说到 XStream 的功能 - 大多数对象能够被序列化,并提供特定的映射,提供高性能和低内存占用,适用于具备较高吞吐量的大型对象图和系统,信息不重复,可自定义的转换策略,安全的框架,异常状况下的详细诊断等等。

诸如传输,配置,持久化和单元测试等普遍的应用使它成为Java开发人员社区中流行的 Java 库。

5. Log4j

Log4j 是 Apache 中的一个库,可用做日志工具。该工具最初由 Ceki Gülcü 开发。 可是如今,Apache Software Foundation 已经接管了这个项目。

Log4j 刚好是其所在应用领域中最可靠的库,能够扩展到支持自定义组件配置。配置语法很是简单,支持 XML、YAML 和 JSON。

Log4J 提供对多个API的支持,能够在白名单应用程序中使用不一样版本的 Log4j 或 SLF4J。另外一个有趣的功能是它支持用户自定义的消息对象。最重要的是,它的工做速度至关使人印象深入。

6. iText

iText 是用于在 Java 中建立和操做 PDF 文件的 Java 开源库。这个库是由包括布鲁诺·洛皮杰(Bruno Lowagie)和保罗·苏亚雷斯(Paulo Soares)在内的团队建立的。

虽然之前的 iText 版本有不少限制,但最近的版本包括许多新功能,如建立 pdf 的选项,将文档从 XML、HTML、CSS 或数据库转换为 PDF。生成的 PDF 符合全球通用标准。它还容许在 PDF 中添加交互性并添加数字签名。你能够复制、合并文档、导入、更改结构、在 PDF 中添加水印或条形码 F。

7. jsoup

jsoup 是一个有用的 Java 库,用于处理和解析 HTML。Jsoup 提供了一个有用的用于提取数据的 API。jsoup 中实现的标准是 WHATWG HTML5。和最新的浏览器做法同样,jsoup 将 HTML 解析为 DOM。

它容许或解析来自任何 URL 或文件的 HTML,例如,你能够获取 http://noeticforce.com 的主页信息,解析它,并将全部 H2 标题提取到元素列表中。

它的用途包括清理和操纵 HTML 元素和属性,以检索用户提交的数据并过滤掉 XSS 攻击属性,使用 jsoup 还能够完成更多功能。

8. Gson

Gson 是 Google 的另外一个库,它垂手可得的将 Java Objects 转换成等效的 JSON 表示形式。

虽然有一些容许将 Java 对象转换为 JSON 的开源项目,但它们要求您将 Java 注释放在您使用的类中。 显然,若是您没法访问源代码,则没法执行此操做,此外,大多数开源项目都不支持 Java 泛型。 Gson考虑到这些问题。

它提供了简单的 toJson()和 fromJson()方法,可用于将 Java 对象和 JSON 互相转换。 Gson 库容许将不可修改的对象转换为 JSON 并返回。 如上所述,它为 Java 泛型提供了极大的支持,并容许对象的自定义表示。

9. Apache PDF box

Apache PDFBox 是另外一个可用于操做 PDF 文件的开源库。这个项目最初由本·利奇菲尔德(Ben Litchfield)发起的,后来被 Apache 接管。

PDFBox 的主要功能使其成为超级库,其中包括 PDF 建立、将单个 PDF 分割为多个 PDF 文件、合并并提取 PDF 文本的 Unicode 文本,填写 PDF 表单,根据 PDF/A 标准验证 PDF 文件,将 PDF 保存为图像并对 PDF 进行数字签名。

10. Joda Time

这就是我一直强调的简单但功能强大的库,它节省了大量的开发时间。 Joda-Time 是一个 Java 库,做为 Java 中日期和时间类的一个很好的替代品。

Joda Time 很容易使用,而且像 getYear()或 getDayOfWeek()这样的属性访问器能够直接获取日期,及其更详细的信息。

Joda Time 还提供计算日期和时间的功能,并支持几乎全部须要的日期格式,并且确定难以用简单的 JDK 方法进行复制。
除了上述 10 个库外,还有许多其余通用于特定领域的 Java 库应用于一些小型或大型的项目。如下是其中一些库:

Ok HTTP —— 用于经过 HTTP 协议有效地在现代应用程序之间交换数据。 Okhttp 在断网时恢复链接,在多个基于 IP 的服务中切换 IP 地址。 okhttp 的一个有用的功能是与现代 TLS(SNI,ALPN)的自动链接,而且在发生故障时回到 TLS 1.0。
Quartz —— 这是另外一个通用且有用的 Java 库,它集成了任何规模和大小的 Java 应用程序。 Quartz 库可用于建立数百,数千或更多的做业,可根据应用需求进行扩展。 Quartz 具备诸如 JTA 事务和集群等功能,可用于企业级应用程序的支持。

Java 具备庞大的生态圈,因此你能够很容易的找到各类各样的插件库,你须要作的只是从海量的插件库中选出哪个对你的项目更加适合。从零开始开发也是能够的,可是若是已经有现成的,并且被证实有效的库组件存在时,为何要去重复造轮子呢。

本文由博客一文多发平台 OpenWrite 发布!
相关文章
相关标签/搜索