2018年排名Top 100的Java类库——在分析了277,975份源码之后得出的结论
作者:网友投稿 时间:2018-11-08 16:31
时间如流水,转眼间2018年已经要接近尾声了,过去的一年,可以说是疯狂的一年。SpaceX成功发射了重型猎鹰火箭,苹果成为首个突破一万亿美元市值的上市公司。
2018年,在IT圈也发生了许多大事和喜事,SpringBoot 2发布、Java发布了10 和 11两个版本、GitHub下嫁MicroSoft、IBM迎娶RedHat等,和往年一样,我们分析了2018年排名Top 100的Java类库。
目的是向你展示2018年的风云Java类库,希望可以给正在使用Java的你一些帮助和启示。不能说榜单中的类库都是最好的,但是至少是目前比较受欢迎的。往期榜单地址:
2017年排名Top 100的Java类库——在分析了259,885份源码之后得出的结论
2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论
最受欢迎的前20个Java类库
今年,Top 100 Java类库的排名发生了一个戏剧性的改变,榜首换人了,在此之前,JUnit已经蝉联了三届冠军。而今年,冠军宝座被fasterXML/Jackson 占据。 而这个类库,2016年排名第14名、2017年排名第18名。

Jackson是一个JSON库,可以方便的将JSON转化成Java的对象模型,以及把Java的对象模型转换成一串JSON。在往年的榜单中,Jackson就是所有JSON类库中排名最靠前的。
Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。具有以下特点:
容易使用 – jackson API提供了一个高层次外观,以简化常用的用例。
无需创建映射 – API提供了默认的映射大部分对象序列化。
性能高 – 快速,低内存占用,适合大型对象图表或系统。
干净的JSON – jackson创建一个干净和紧凑的JSON结果,这是让人很容易阅读。
不依赖 – 库不需要任何其他的库,除了JDK。
开源代码 – jackson是开源的,可以免费使用。
去年包揽前三甲的JUnit家族三大成员JUnit、JUnit Runner和junit.framework今年分别位列第三、第四和第五名。
今年排名第二名的是Apache Hadoop,是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
在我们排名前20的库中,我们可以找到Eclipse基金会的Jetty、Apache基金会的 Shiro 、Netty以及谷歌的Guice库等。
Jetty
Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器。尽管网页服务器通常用来为人们呈现文档,但是Jetty通常在较大的软件框架中用于计算机与计算机之间的通信。
Shiro
Apache Shiro是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
Netty
Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。
Guice
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。
除此以外,前20名的榜单中,值得关注的还有开源日志组件——ch.qos.logback、专门用于代码微基准测试的工具套件——org.openjdk.jmh、
除此之外,我们比较熟悉的apache旗下的很多常用类库,如apache.commons.lang、org.apache.ibatis、org.apache.maven、org.apache.http.client、apache.commons.lang3等也都在前20的榜单中。
被挤出前20的Java类库
为了分析榜单的变化情况,我们对比了2017年top20的类库和今年的类库榜单。我们发现,除了JUnit的使用减少以外,还有些类库排名在下降,有些甚至从前二十名被挤出。
首当其冲的是去年位列第四和第五名的Mockito和slf4j,今年被无情的甩出了前20,分别位列第23名和25名。
去年我们重点表扬的,排名第6的,帮助编写用Java语言进行软件测试的框架——Hamcrest 今年惨跌至第37名。
那些值得关注的后来者
我们在今年的结果中看到的最主要的事情是,一切都可以改变。位于榜单底部的库可能会在接下来的一年中名列前茅。这就是为什么我们在2018年的图表中查看了一些不太受欢迎的类库,并在2019年对它们进行跟踪,如:


