【编者按】本文作者为 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 库

连续两年,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 库

排名计算方式

你很可能会疑惑,我们是如何得到该排序的。首先,我们根据评分抽取出 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 能为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

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

2016年度最受欢迎的100个 Java 库的更多相关文章

  1. 不容错过!2016年度优秀UI/UX设计文章

    本文整理了一些2016年度最受欢迎的文章,例如有关UI / UX设计的理论知识,书籍和工具,如何做出更好的设计的方法和建议,以及新的设计趋势. 1. 2017年用户体验设计趋势 我们期待着2017年用 ...

  2. 2016年最受欢迎中国开源软件TOP 20

    开源软件对程序员来说是一个经常接触的软件,作为一个经常接触的软件,当然想知道自己用的软件受欢迎程度,基于此,开源中国在近日公布“2016年度最受欢迎中国开源软件评选”结果,在TOP20榜单中,前5名分 ...

  3. 程序员快围观!2016年最受欢迎中国开源软件TOP 20

    [PConline 资讯]开源软件对程序员来说是一个经常接触的软件,作为一个经常接触的软件,当然想知道自己用的软件受欢迎程度,基于此,开源中国在近日公布"2016年度最受欢迎中国开源软件评选 ...

  4. 2016最受欢迎国产开源软件评选,2016 年度开源中国新增开源软件排行榜 TOP 100

    http://www.oschina.net/news/80154/2016-cn-open-source-software-top http://www.oschina.net/project/to ...

  5. 2016 年度开源中国新增开源软件排行榜 TOP 100

    2016 年度开源中国新增开源软件排行榜 TOP 100 2016 年度开源中国新增开源软件排行榜 TOP 100 新鲜出炉!本榜单根据 2016 年开源中国新收录的 3030 款软件的关注度和活跃度 ...

  6. 腾讯网2016回响中国:华清远见荣获2016年度知名IT培训品牌

    12月1日,由腾讯网主办的“2016回响中国·腾讯网教育年度盛典”上,揭晓了“2016腾讯网教育年度总评榜”榜单.高端IT就业培训专家——华清远见教育集团凭借自身优质的高薪IT就业服务优势成功入围,荣 ...

  7. IEEE发布2016年度编程语言排行榜

    C 语言占据榜首,但大数据类是最大赢家. IEEE Spectrum 的第三次"最受欢迎编程语言"交互式排行榜新鲜出炉.因为不可能顾及到每一个程序员的想法,Spectrum 使用多 ...

  8. 2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论(16年文章)

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

  9. 2016年度GitHub上Stars最多的10个项目

    来源于:https://zhuanlan.zhihu.com/p/24627923 2016年接近尾声,在最近的几篇文章中,会整理总结一些2016年度开源项目.今天整理的是:2016年度GitHub最 ...

随机推荐

  1. Java 多线程学习笔记:生产者消费者问题

    前言:最近在学习Java多线程,看到ImportNew网上有网友翻译的一篇文章<阻塞队列实现生产者消费者模式>.在文中,使用的是Java的concurrent包中的阻塞队列来实现.在看完后 ...

  2. JavaScript -- 数组Array

    -----021-ActiveXObject.html----- <!DOCTYPE html> <html> <head> <meta http-equiv ...

  3. Element ui tree结合Vue使用遇到的一些问题(一)

    下图是一个后台管理系统,展示的是角色列表 当我点击编辑的时候,弹出一个模态框,如下图 功能需求:点击编辑按钮,弹出模态框,选择权限那块,默认选中当前角色拥有的权限. 问题:第一次点击编辑按钮时,不会选 ...

  4. 第k大的数

    问题描述:输入一组数,指定一个k,输出这组数里第k大的数. 一般这种题目,第一想法是把整个数组先排序后,再选取第k位的数.但是这样做实际上浪费了大量的时间在排序上,我们只是要求第k大的数,并非要把整个 ...

  5. 单线程实现同时监听多个端口(windows平台c++代码)

    前言 多年前开发了一套网络库,底层实现采用IOCP(完成端口).该库已在公司多个程序中应用:经过多次修改,长时间检验,已经非常稳定高效. 最近把以前的代码梳理了一下,又加进了一些新的思路.代码结构更加 ...

  6. dubbo + zookeeper 简介和部署

    Dubbo简介: Dubbo 是阿里巴巴公司开源(以前不开源)的一个高性能优秀的服务框架, 使得应用可通过高性能的 RPC 实现服务的输入和输出功能, 可以和spring框架无缝集成. 那么这里, 啥 ...

  7. Java获取微信小程序二维码

    tip:通过该接口,仅能生成已发布的小程序的二维码. tip:可以在开发者工具预览时生成开发版的带参二维码. tip:接口A加上接口C,总共生成的码数量限制为100,000,请谨慎调用. tip: P ...

  8. 并发编程之 ThreadLocal 源码剖析

    前言 首先看看 JDK 文档的描述: 该类提供了线程局部 (thread-local) 变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局 ...

  9. apache 隐藏 index.php

    在根目录下添加文件 .htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteC ...

  10. 啰里吧嗦CountDownLatch

    java.util.concurrent Class CountDownLatch 目录 CountDownLatch 是什么 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等 ...