2016年度最受欢迎的100个 Java 库

简介: 本文作者为 Henn Idan,主要介绍基于 GitHub 中的数据分析,得出的2016年度最受欢迎的100个 Java 库。本文系国内 ITOM 管理平台 OneAPM 编译呈现。

【编者按】本文作者为 Henn Idan,主要介绍基于 GitHub 中的数据分析,得出的2016年度最受欢迎的100个 Java 库。本文系国内 ITOM 管理平台 OneAPM 编译呈现。

谁拔得头筹?谁又落于人后?我们分析了 GitHub 中 47,251 条依赖关系,得出最受欢迎的100个 Java 库。

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

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

最受欢迎的20个 Java 库

2016年度最受欢迎的100个 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 应用么?请阅读我们的文章:Java 引导程序:Dropwizard 对比 Spring Boot

最受欢迎的 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——该库用于同 HMTL 协作。它提供了通过 DOM 操作、CSS 以及类 jquery 方法以抽取并操纵数据的 API。

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

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

按类型排序的100个 Java 库

2016年度最受欢迎的100个 Java 库

排名计算方式

你很可能会疑惑,我们是如何得到该排序的。首先,我们根据评分抽取出 GitHub 中排名靠前的 Java 项目。之后,抽取使用 Maven 或 Ivy 进行依赖管理的项目,快速地得到它们的 pom.xml / ivy.xml 依赖。至此,我们得到 47,251 个数据点。

接下来,经过一些整合与分析,我们得到来自前3862个 Java 项目的12059个不同的 Java 库。由此,根据这些库在 GitHub 中出现的次数,不难得到最受欢迎的100个库。

如果你想查看我们的原始数据,可以在此处查看文件。尽管我们努力保持严谨以防止出现疏忽,你也可以看看这些数据,说不定会有新的有趣见解。

文末反思

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

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

如果你已经选好了自己用的库,但仍然在寻找终极工具,我们为你提供了最佳的建议。点此查看《版本升级之后 Java 开发者最喜欢的15款工具》

本文转自 OneAPM 官方博客

原文地址:https://dzone.com/articles/the-top-100-java-libraries-in-2016-after-analyzing

相关文章
|
4月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
102 1
|
28天前
|
Java BI API
Java Excel报表生成:JXLS库的高效应用
在Java应用开发中,经常需要将数据导出到Excel文件中,以便于数据的分析和共享。JXLS库是一个强大的工具,它基于Apache POI,提供了一种简单而高效的方式来生成Excel报表。本文将详细介绍JXLS库的使用方法和技巧,帮助你快速掌握Java中的Excel导出功能。
61 6
|
1月前
|
Java API Apache
|
2月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
148 0
在Java中处理JSON数据:Jackson与Gson库比较
|
2月前
|
JSON Java 数据格式
Java Jackson-jr库使用介绍
Jackson-jr是专为资源受限环境设计的轻量级JSON处理库,适用于微服务、移动应用及嵌入式系统。它通过牺牲部分高级功能实现了更小体积和更快启动速度,非常适合对库大小敏感的项目。本文将介绍如何使用Jackson-jr进行JSON序列化与反序列化,并演示处理嵌套对象与数组的方法。此外,还介绍了自定义序列化与反序列化的技巧以及性能与功能的权衡。通过示例代码,展示了Jackson-jr在常见任务中的高效与灵活性。
29 0
|
3月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
|
4月前
|
安全 Java
Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
该博客文章通过Java代码示例演示了生产者-消费者问题,其中生产者在仓库未满时生产产品,消费者在仓库有产品时消费产品,通过同步机制确保多线程环境下的线程安全和有效通信。
|
4月前
|
安全 Java API
Java 8 流库的魔法革命:Filter、Map、FlatMap 和 Optional 如何颠覆编程世界!
【8月更文挑战第29天】Java 8 的 Stream API 通过 Filter、Map、FlatMap 和 Optional 等操作,提供了高效、简洁的数据集合处理方式。Filter 用于筛选符合条件的元素;Map 对元素进行转换;FlatMap 将多个流扁平化合并;Optional 安全处理空值。这些操作结合使用,能够显著提升代码的可读性和简洁性,使数据处理更为高效和便捷。
153 0
|
4月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
|
6月前
|
存储 算法 搜索推荐
Java中的数组函数库及其使用技巧
Java中的数组函数库及其使用技巧