查看原文
其他

盘点 100 个最受欢迎的 Java 库!绝对经典

点击上方蓝色“后端面试那些事儿”,选择“设为星标”

学最好的别人,做最好的我们


我们分析了 GitHub 中 47,251 条依赖关系,得出最受欢迎的100个 Java 库。


漫长的周末里,我们最喜欢的消遣方式是遍历 GitHub,找出最受欢迎的 Java 库。我们决定,将其中的乐趣与所得分享给大家。

我们分析了 GitHub 中前3862个 Java 项目里用到的12059个不同 Java 库的47251条导入声明。从该列表中,我们选取了排名前100的 Java 库,并将结果在此呈现。


# 最受欢迎的20个 Java 库



续两年,junit 二度成为 GitHub 中最受欢迎的 Java 库。与此同时,Java 日志记录 API slf4j 获得第二名,log4j 排名第四。


此外,谷歌的开源项目 Guava 来势汹汹,勇夺第三名,该库包含了一系列谷歌内含的核心 Java 库。如果你对 Guava 不甚了解或者不确定如何使用,你应该读一下我们的文章,了解一下谷歌 Guava 鲜为人知但其实每个开发者都应该知道的特性。


# Spring 库的崛起


作为 Java EE 的首要竞争者,Spring 框架日渐流行,其受欢迎程序也反映在 GitHub 中。在本次最受欢迎的100个 Java 库中,44个库与 Spring 相关。

其中,最有意思的是 Spring Boot 的疾速增长,该库能帮助开发者通过最精简的引用打造以 Spring 为驱动的应用及服务。你想在最短的时间内打造能适应生产环境的 Java 应用么?


最受欢迎的 Spring 库列表:
第13名 – springframework.spring-context 
第17名 – springframework.spring-test 
第22名 – springframework.spring-webmvc 
第24名 – springframework.spring-core 
第27名 – springframework.spring-web 
第36名 – springframework.spring-jdbc 
第37名 – springframework.spring-orm 
第38名 – springframework.spring-tx 
第40名 – springframework.spring-aop 
第47名 – springframework.spring-context-support 
第72名 – springframework.boot.spring-boot-starter-web 
第81名 – springframework.security.spring-security-web 
第82名 – springframework.security.spring-security-config 
第88名 – springframework.boot.spring-boot-starter-test 
第99名 – springframework.security.spring-security-core


# 最受欢迎的 JSON 库


我们知道,Java 并未向 JSON 提供原生支持(尽管 Java 9 差点就将其包括了),我们很有兴趣知道这些库在 GitHub 项目中的受欢迎程度。
你不应该根据表象判断一个库的好坏。并非所有的 JSON 库都性能相当,选择合适自身环境的库非常重要。想要知道应该如何选择 JSON 库,可以查看我们最新的 JSON 评测基准。
最受欢迎的 JSON 库有:
第14名 – fasterxml.jackson.core.jackson-databind 
第19名 – google.code.gson.gson 
第43名 – json.json 
第80名 – googlecode.json-simple.json-simple 
第89名 – thoughtworks.xstream.xstream

# 最惊艳的4个库


其实,有许多有意思甚至新出现的库,都让我们印象深刻。不过,我们决定专注于下面4个库:


第68名:projectlombok.lombok ——该库旨在简化 Java 中的引用样本,并用简单的注释集替代了一些极为繁杂的引用样本。


第90名:jsoup.jsoup——该库用于同 HTML 协作。它提供了通过 DOM 操作、CSS 以及类 jquery 方法以抽取并操纵数据的 API。


第92名:io.netty.netty-all——用于快速、简便地部署可维护的高性能协议服务器以及客户端的网络应用框架。


第98名:dom4j.dom4j——用于处理 XML 的开源框架。与 XPath 集成,提供了对 DOM、JAXP 以及 Java 平台的全面支持。


# 按类型排序的100个 Java 库


# 名计算方式


你很可能会疑惑,我们是如何得到该排序的。首先,我们根据评分抽取出 GitHub 中排名靠前的 Java 项目。之后,抽取使用 Maven 或 Ivy 进行依赖管理的项目,快速地得到它们的 pom.xml / ivy.xml 依赖。至此,我们得到 47,251 个数据点。接下来,经过一些整合与分析,我们得到来自前3862个 Java 项目的12059个不同的 Java 库。由此,根据这些库在 GitHub 中出现的次数,不难得到最受欢迎的100个库。
如果你想查看我们的原始数据,可以在此处查看文件。尽管我们努力保持严谨以防止出现疏忽,你也可以看看这些数据,说不定会有新的有趣见解。

# 文末反思


当我们将今年的前100名数据与去年的相对比时,我们发现小的 Java 库有一些名次变动,其中 Spring 相关库的排名总体升高,而人们对 MongoDB 相关库的兴趣有所下降。


然而,对于绝大多数 Java 开发者而已,他们对自己选择的 GitHub 库,都保持相当的忠诚度。考虑到现有的使用这些库的项目数量,我们有理由相信这些库在以后都会广受欢迎



往期推荐

面试:Java 到底是值传递还是引用传递?

推荐一款免费的数据库管理工具,比 Navicat 还要好用,功能还很强大

面试官:InnoDB 中一棵 B+ 树可以存放多少行数据?



一起进大厂,每日学干货

关注我,不迷路


看到这了,点个在看叭!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存