2016 年排名 Top 100 的 Java 类库
我们分析了GitHub中47,251个依赖,从中找出了排名前一百的Java类库,让我们看看谁在前面,谁在后面。
我们在漫长的周末的消遣方式就是浏览GitHub并且搜索流行的Java类库。我们决定把其中的乐趣与结果分享给你。
我们分析了GitHub中排名前3,862个项目中的47,251个导入语句,其中有12,059个Java类库被依赖。我们从这个列表中提取出前一百并把结果分享给你。
最受欢迎的前20个Java类库

和上次分析结果一致,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个类库的类型

魔术背后的科学(我们是如何得出这份列表的)
你可能想知道我们是如何得出这些信息的。我们首先按照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
2016 年排名 Top 100 的 Java 类库的更多相关文章
- 2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论(16年文章)
本文由HollisChuang 翻译自 The Top 100 Java Libraries in 2016 – After Analyzing 47,251 Dependencies . 原作者:H ...
- 排名Top 100的Java类库
和去年一样,排名第一的类库,依旧是JUnit.基于它扩展的 JUnit Runner 占据第二名的位置,甚至是较旧的 junit.framework 此次也在第三名的位置.也就是说JUnit包揽了前三 ...
- 2015 年度新增开源软件排名 TOP 100 - 开源中国社区
2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...
- 2015年度新增开源软件排名TOP 100,EasyDarwin开源流媒体服务器排名第17
本榜单包含 2015 年开源中国新收录的 5977 款开源软件中,根据软件本身的关注度.活跃程度进行排名前 100 名的软件.从这份榜单中或许可以了解到最新业界的趋势. 榜单详情:http://www ...
- 排名Top 16的Java实用类库
(转载: http://www.hollischuang.com/archives/1606) github地址: https://github.com/liufeiSAP/javaStudy.git ...
- 【转载】排名Top 16的Java实用类库
*转载自HollisChuang 链接:http://www.hollischuang.com/archives/1606 1. org.apache.commons.io.IOUtils close ...
- 2016年度最受欢迎的100个 Java 库
[编者按]本文作者为 Henn Idan,主要介绍基于 GitHub 中的数据分析,得出的2016年度最受欢迎的100个 Java 库.本文系国内 ITOM 管理平台 OneAPM 编译呈现. 谁拔得 ...
- 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)
排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...
- 2016 年度开源中国新增开源软件排行榜 TOP 100
2016 年度开源中国新增开源软件排行榜 TOP 100 2016 年度开源中国新增开源软件排行榜 TOP 100 新鲜出炉!本榜单根据 2016 年开源中国新收录的 3030 款软件的关注度和活跃度 ...
随机推荐
- NGINX中遇到SELinux 13:permission denied
被selinux坑了.抓包发现端口始终没有流量, 操作过程中还特地dmesg看了c并没发现selinux的异常. https://www.nginx.com/blog/using-nginx-plus ...
- Elasticsearch核心知识大纲脑图
- CDH- CDH大数据集群运维
CDH前端CM监控不正常(未解决) Request to the Service Monitor failed. This may cause slow page responses. View th ...
- js事件绑定的几种方式与on()、bind()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载 一直不是很理解几种js事件绑定之间的区别与联系,今天百度了一下,在此做一总结: 1.如果只是简单的绑定一个事件,可以直接写在行内,点击执行一个函数, ...
- BeanUtils介绍及使用
JavaBeans事实上有三层含义.首先,JavaBeans是一种规范,一种在Java(包括JSP)中可重复使用的Java组件的技术规范,也可以说成我们常说的接口.其次,JavaBeans是一个Jav ...
- 【遍历二叉树】05二叉树的层次遍历II【Binary Tree Level Order Traversal II】
就把vector改成用栈类存放层次遍历的一层的序列 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- python suds 调用webservice 缓存
在linux系统中 如果webservice更新了字段 suds调用有可能缓存以前的字段或方法,对新的字段报找不到类型 TypeNotFound,或者对 新加的方法找不到该方法的错误. 当更新或添加w ...
- HihoCoder1665方块游戏([Offer收割]编程练习赛40)(线段树)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在玩一款类似俄罗斯方块的游戏.与原版俄罗斯方块不同的是,落下方块都是长度不一的横向长条,并且不能移动也不能变成竖直方 ...
- MYSQL root密码修改找回命令
方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass ...
- ACM学习历程—SGU 275 To xor or not to xor(xor高斯消元)
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=275 这是一道xor高斯消元. 题目大意是给了n个数,然后任取几个数,让他们xor和 ...