在分析了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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

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

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

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…

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

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

javafx基础教程_JavaFX教程–基础

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

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

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

嵌入式开发有年龄限制吗_什么?!考教资有年龄限制了?2020年我还能考吗?...

近几年教师资格证越来越火爆越来越多的人都想报考,却又担心年龄问题,那么考教师资格证有年龄限制吗?下面小编就给大家解答一下这个问题:报考教师资格证是没有年龄限制的,只有学历限制。报考幼师教师资格证的考生必须是…

Python3的bytes/str之别

Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节…

jframe透明_使JFrame透明

jframe透明首先创建一个带有滑块的框架,该滑块将用于设置透明度量。 import javax.swing.JFrame; import javax.swing.JSlider;public class TransparentFrame extends JFrame {public TransparentFrame() {setTitle(Transparent Frame);setSize(400,400);setDefaul…

Python关于Threading暂停恢复解决办法

我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后, 线程就属于失控状态. 不过, 我们可以自己实现这些. 一般的方法就是循环地判断一个标志…

NetBeans Java EE技巧9:从数据库创建JSF应用程序

您需要非常快速地创建数据库前端吗? NetBeans IDE允许人们以极少的编码就非常快速地为一组数据库表开发JSF应用程序前端。 现在,本教程既是老歌,又是老歌……对于那些不了解它的人来说,值得再次提及。 首先,创建您的应…

[模板]树链剖分

用途 我想把一个本来是线性的东西放到树上做,维护路径或者是子树的各种性质,那就用树剖呗 它可以套线段树、树状数组、ST表(以及其他我不知道的) 做法 我们考虑把树分成一条条链,然后对每条链维护我们的数据结构&#…

python tab和空格混用_我的 Python 编码规范

python 文件的组成为了便于描述,先上一个 demo#!/usr/bin/env python# -*- coding: utf-8 -*-"""通常这里是关于本文档的说明(docstring),须以半角的句号、 问号或惊叹号结尾!本行之前应当空一行,继续完成关于本文档的说明如果…

Twitter创始人Jack Dorsey的每日必做和不做清单

Twitter创始人Jack Dorsey显然是这段时间以来技术界的中心人物,不仅发表了一系列的文章,而且一本反映Twitter早期岁月的书也即将出版。今天,他又在Y Combinator的Startup School上发表了讲话,不过在谈话中Dorsey回避了一切不必要及…