2016 年排名 Top 100 的 Java 类库

简介:

我们分析了GitHub中47,251个依赖,从中找出了排名前一百的Java类库,让我们看看谁在前面,谁在后面。

我们在漫长的周末的消遣方式就是浏览GitHub并且搜索流行的Java类库。我们决定把其中的乐趣与结果分享给你。

我们分析了GitHub中排名前3,862个项目中的47,251个导入语句,其中有12,059个Java类库被依赖。我们从这个列表中提取出前一百并把结果分享给你。

最受欢迎的前20个Java类库
image

和上次分析结果一致,junit依旧是GitHub中最受欢迎的类库。Java中的日志API slf4j排名第二,log4j排名第四。

Google的开源类库Guava呈上升趋势,排名第三(去年排名第四)。Guava中包含一系列诞生在谷歌内部的核心Java类库。

Spring类库的崛起

Spring框架作为Java EE的主要竞争对手在Java社区很流行,这一点也在GitHub中很好的提现了出来。在排名一百名以外,有44个类库是与Spring相关的。最有趣的部分是Spring Boot的迅速崛起,关于这部分内容可以阅读Java Bootstrap: Dropwizard vs. 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(尽管Java9宣称支持),所以我们想通过GitHub中的项目来看看这些JSON类库的受欢迎程度。

你不能通过他的使用量多少来选择一个使用哪个类库,因为这些JSON框架的功能不尽相同。而是应该根据实际使用环境选择最适合的。如果你不知道如何选择,可以参考JSON benchmark.

排名靠前的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

神奇四侠

有很多有趣的新库,甚至引起了我们的注意,但我们决定关注以下他们:

68 – projectlombok.lombok – Lombok提供了简单的注解的形式来帮助我们消除一些必须有但显得很臃肿的Java样板代码。

90 – jsoup.jsoup – jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

92 – io.netty.netty-all – 网络应用程序框架,用于快速和方便的开发维护高性能协议服务器和客户端

98 –dom4j.dom4j – 处理XML的开源框架。它集成了XPath并提供全力支持DOM,JAXP和Java平台。

前100个类库的类型
image

魔术背后的科学(我们是如何得出这份列表的)

你可能想知道我们是如何得出这些信息的。我们首先按照star数量把GitHub中的项目代码pull到本地。我们提取并分析了使用了Maven和Ivy的项目中用于依赖管理的 pom.xml / ivy.xml ,这给我们提供了47,251分数据来源。

我们做了一些疯狂的挖掘和分析,最终我们得到GitHub中排名前3,862项目中的12,059个Java类库。这样就可以很方便的对他们进行排名了,只要按照他们出现的次数排序就可以了。

如果你想看看我们的原始数据,这个文件可以。虽然这篇文章中我们已经介绍的比较清楚了,我们仍然欢迎你来看看,确保我们没有错过任何有趣的见解。

最后的一点想法

当我们拿着这份列表与去年的结果做对比的时候,我们发现一些小的类库的排名有一些小的波动,Spring有明显上升,而MongoDB消失在名单中。

如果你已经对类库有了选择,但你仍然寻找最终的工具,我们有一个完美的建议给你。 Top 15 Tools Java Developers Use After Major Releases

本文由HollisChuang 翻译自 The Top 100 Java Libraries in 2016 – After Analyzing 47,251 Dependencies . 原作者:Henn Idan

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
28天前
|
SQL Java Apache
Java类库
Java类库
14 0
|
6月前
|
Java 数据库连接
Java类库的使用
Java类库(Java Class Library)是一组预定义的类和接口,提供了丰富的功能和工具,可以帮助开发人员快速开发Java应用程序。Java类库是Java开发的核心部分,包含了各种常用的类和接口,用于处理字符串、日期、集合、输入输出、网络通信、图形界面等各种任务。 Java类库分为两部分:核心类库(Core Class Library)和扩展类库(Extension Class Library)。 核心类库包括了Java语言的基本类和接口,如Object、String、Math、ArrayList、HashMap等。这些类和接口提供了常用的功能和数据结构,可以直接在代码中使用。
71 0
|
3月前
|
缓存 安全 Java
JAVA 常用类库 StringBuffer 和 StringBuilder
● 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 ● 和 String 类不同的是,StringBuffer 和 StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。 ● StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。 ● 由于 StringBuilder 相较于 StringBuffer 有速度优势,多数情况下建议使用 StringBuilder类。然而在应用程序要求线程安全的情况下,
|
4月前
|
安全 Java 关系型数据库
Java核心类库
Java核心类库
55 1
|
6月前
|
存储 算法 安全
Java常用类库与技巧
Java常用类库与技巧
40 0
|
8月前
|
算法 Java 调度
Java常用类库(System、Arrays、定时调度、Base64加密解密)
1.System类,2.Arrays数组操作类,3.定时调度,4.Base64加密与解密
55 0
|
8月前
|
安全 Java 数据库连接
Java常用类库中(ThreadLocal、Comparable比较器、AutoCloseable、Optional空处理)附带相关面试题
1.ThreadLocal线程独立,2.Comparable比较器与Comparetor,3.AutoCloseable接口,4.Optional空处理
45 0
|
8月前
|
存储 安全 Java
Java类库StrringBuffer类、Math、SimpleDateFormat、Random随机数、大数字处理类和UUID 无重复数据(附带面试题)
1.StrringBuffer类 CharConsequnse接口,2.Math数学计算,3.Date日期处理类与SimpleDateFormat、4.Random随机数、5.大数字处理类、6.UUID 无重复数据
74 0
|
11月前
|
SQL 编解码 缓存
贼好用的Java工具类库,GitHub星标10k+你在用吗?
Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。 Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)
|
11月前
|
存储 缓存 JavaScript
Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
56 0