在分析了47,251个依赖关系之后,2016年排名前100的Java库

谁在上面,谁在后面? 我们分析了Github上的47,251个依赖关系,并抽取了前100个Java库

长周末我们最喜欢的消遣是浏览Github并搜索流行的Java库。 我们决定与您分享乐趣和信息。

我们分析了Github上前3,862个Java项目使用的12,059个独特Java库的47,251个导入语句。 从该列表中,我们提取了前100名,现在我们共享结果。 提示鼓卷。

最受欢迎的20个Java库

前20名

junit 去年获得最高荣誉,是Github上最受欢迎的Java库。 Java日志记录API slf4j排名第二,而log4j排名第四。

排名上升的是Google的开源Guava,排名第三。 它包含一系列内部于Google内部诞生的核心Java库。 如果您不熟悉Guava或不确定如何使用它,则可以阅读我们的文章, 其中介绍了每个开发人员都应该知道的Google Guava鲜为人知的一些功能 。

Spring图书馆的兴起

Spring框架作为Java EE的主要竞争对手而在Java社区中变得流行,这种流行也体现在Github中。 在100个最受欢迎的库中,有44个与Spring相关。 这里最有趣的部分是Spring Boot的迅猛发展,它使开发人员可以用最少的样板创建Spring支持的应用程序和服务。 您是否想在最短的时间内启动可用于生产的Java应用程序? 查看我们有关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的本机支持(尽管它几乎使它成为Java 9! ),因此我们想了解一下这些库在Github项目中的流行程度。

您不应该凭封面来评判图书馆。 并非所有JSON库都具有相同的性能,因此为您的环境选择合适的库可能至关重要。 如果您想知道应该使用哪一个,请查看我们最新的JSON基准测试 。

顶级JSON库是…

#14 – fastxml.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 –该项目旨在减少Java中的样板,用一组简单的注释替换一些最严重的违规者。

#90 – jsoup.jsoup –一个用于处理实际HTML的Java库。 它提供了一个使用DOM操作,CSS和类似jquery的方法提取和处理数据的API。

#92 – io.netty.netty-all –一种网络应用程序框架,用于快速轻松地开发可维护的高性能协议服务器和客户端。

#98 – dom4j.dom4j –用于处理XML的开源框架。 它与XPath集成在一起,并提供对DOM,JAXP和Java平台的全面支持。

按类型排名前100位的图书馆

topType

魔术背后的数学(或:我们是如何得出清单的)

您可能会问自己,我们如何获得此信息的。 我们首先从Github的排名中挑选出排名靠前的Java项目。 我们获取了这些数据,并提取了使用Maven或Ivy进行依赖管理的项目,以快速访问其pom.xml / ivy.xml依赖,这给我们留下了47,251个数据点。

我们进行了一些疯狂的研究和分析,这给我们留下了12,059个独特的Java库,供Github上排名前3,862的Java项目使用。 根据它们出现在Github项目中的数量,可以从那里轻松获得前100个库。

如果您想查看我们的原始数据, 可以在此处找到该文件。 尽管这次我们很清醒,但是仍然欢迎您来看看并确保我们不会错过任何有趣的见解。

最后的想法

当我们将当前的前100名列表与去年的结果进行比较时,我们可以发现较小的图书馆之间发生了一些变化,人们对Spring和MongoDB的兴起越来越感兴趣。

但是,在查看大多数Java开发人员时,他们在选择Github库方面非常一致。 考虑到使用这些库的现有项目数量将在2017年及以后继续使用,这并不奇怪。

如果您已经选择了库,但仍在寻找最终的工具,我们将为您提供完美的建议。 查看主要版本发布后Java开发人员使用的前15种工具 。

翻译自: https://www.javacodegeeks.com/2016/05/top-100-java-libraries-2016-analyzing-47251-dependencies.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tensorflow源码编译教程_源码编译安装tensorflow 1.8

参考官方指南基本要求官网测试过的源代码配置如下:image也就是说,按照这个版本安装的话不应该再产生版本的问题了。我的配置ubuntu 16python 2.7nccl 2.3gcc 4.8.5cuda 7.1.4cudnn 9.0 (具体是9.0.176但是在./configure的那里不用输这么仔细,…

html2canvas关于图片不能正常截取

问题 首先说说遇到了什么问题。首先有这么一个需求。需要前端根据后端传过来数据,动态的生成图片。图片中的文案、背景图片、用户头像全部都是通过后端的接口获取。但是使用 html2canvas 生成的canvas有些图片成功的在canvas里生成了。但是有些图片无论如何都显示不…

tortoise清理本地分支_本地:延庆运污水环卫抽化粪池

北京兴百荣清洁公司是清理排水管道的技术服务中心。提供下水道疏通,化粪池清理,抽污水,化粪池清掏,管道清淤,下水道清洗,化粪池清理,抽粪,管道疏通,雨水管道清理&#xf…

C++矩阵优化算法

写在前面的话:此矩阵优化算法并非原创,笔者只是转述了一种智慧。 在C中,定义一个矩阵通常是这样的: class MyMatrix { ........ public: ........ float data[50000]; } 这里为了方便说明问题,使用固定大小的数…

win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

由于工作需要,今天要在电脑上安装SQL Server 2005。以往的项目都是使用Oracle,MS的数据库还真的没怎么用过,安装Oracle已经轻车熟路,但装SQL Server好像还有点小麻烦,所以记录下来,以留备用。 ------------…

tensorflow中的Supervisor

tf.train.Supervisor()可以帮我们简化一些事情,可以保存模型参数和Summary,它有以下的作用: 1)自动去checkpoint加载数据或初始化数据 ,因此我们就不需要手动初始化或者从checkpoint中加载数据 2)自身有一个…

jaxb 解析list元素_JAXB和根元素

jaxb 解析list元素XmlRootElement是人们习惯于与JAXB(JSR-222)一起使用的注释。 目的是将根元素与类唯一关联。 由于JAXB类映射到复杂类型,因此一个类有可能对应于多个根元素。 在这种情况下,无法使用XmlRootElement ,…

抓娃娃机爪不动怎么办_黄子韬吃娃娃菜能把临时牙咬断?种植牙到底结实不结实?...

黄子韬的临时牙上热搜了,最高排名热搜榜第四位。有关牙齿的事儿瞬间让我这个口腔医生来了八卦之心,在看了后面的各种评论之后,我大概梳理清楚这到底是怎么回事了:小时候因为调皮所以摔断了门牙,前些日子门牙做了种植牙…

从SVN迁移到Git(包括SVN历史纪录)【最系统的讲解】

从SVN迁移到git有很多方法,最简单的就是使用git包自带的git svn命令(git v1.7及以上)。除此之外还有一些第三方的专门的转换工具如http://www.subgit.com/,https://www.atlassian.com/git/tutorials/migrating-overview/等。但是由…

反射的应用

class Teacher:OPERATE_DIC [(创建课程, create_course),(创造学生, create_student),(创建课程, create_course),(查看学生信息, check_student_info),]def __init__(self, name):self.name namedef create_course(self):print(创建课程)def create_student(self):print(创建…

抖音数据统计_26万条抖音数据背后的推荐逻辑以及严重失调的男女比例

本文作者:喜哥(张佳)易灵微课《数据分析-认知与实践》讲师新榜数据分析师人人都是产品经理、华尔街见闻专栏作家简书科技类优秀作者本文首发自公众号喜新(noyanjiu),如需转载请注明出处这次是26W条数据,应该…

SQL SERVER 数据库主键和外键的思考

SQL SERVER 数据库主键和外键的思考 什么是主键: 主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建…

在Gradle 2.13中更好地处理“在插件Y上找不到属性X”

您可能从未听说过的服务缺少用户名,密码或令牌? 这通常发生在您尝试执行任何操作(例如仅构建项目)时,不仅发生在使用给定的插件(例如在线代码覆盖工具)时。 我不想修改我的环境,而只…

2018/7/31 -zznu-oj -问题 C: 磨刀- 【扩展欧几里得算法的基本应用】

问题 C: 磨刀 时间限制: 1 Sec 内存限制: 128 MB提交: 190 解决: 39[提交] [状态] [讨论版] [命题人:admin]题目描述 磨刀是一个讲究的工作,只能在n℃下进行,所以我们首先要做的就是把刀的表面温度提升到n℃。处理刀身温度有两种方式:1.淬火…

统计各个函数的耗时_分享一次CMS GC耗时狠高优化过程全记录

1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor…

用JDBC直连方式访问SQL Server 2005详解

用JDBC直连方式访问SQL Server 2005详解 1.安装JDK,配置其环境变量:(笔者所用版本为1.6版) (1)从官方网http://java.sun.com/jdk下载安装文件。 (2)安装下载下来的安装包,按照提示安装成…

string类有可以调换方向的函数吗_深度剖析C++中的inline函数

点蓝色字关注“CurryCoder”微信公众号:CurryCoder的程序人生 怕什么真理无穷,进一寸有一寸的欢喜1.inline函数的爱恨两难内联函数比宏优点好很多,详细原因请参见尽量以const、enum、inline替换#define 。调用内联函数不需要承受函数调用所导…

javafx基础教程_JavaFX教程–基础

javafx基础教程JavaFX似乎正在RIA领域获得发展。 有了正确的工具和开发支持,它肯定会成为下一个最佳技术“物”的代价。 我没有在这里写任何JavaFX评论,因为有很多技术评论可能对它进行了广泛的评论,但是,我将编写一个简单的教程&…

prepareStatement与Statement的区别

prepareStatement与Statement的区别 1:创建时的区别: Statement stmcon.createStatement(); PreparedStatement pstmcon.prepareStatement(sql); 执行的时候: stm.execute(sql); pstm.execute(); 2: pstm一旦绑定了SQL,此pstm就不能执行其他的S…

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

为什么要使用Spring Boot创建微服务? Spring Boot是Java领域众所周知的首选框架,用于创建Micro Services。 使用Spring引导框架,可以非常轻松地创建Java应用程序。 现在,我们将看到Spring启动框架的一些功能,这使其成为…