2019 年 Java 开发者生态报告!

数据来源自国外的一个调查,在过去的几周,这份调查一共采访了6707名开发人员。数据来源:https://www.baeldung.com/java-in-2019。java

1.JDK 版本使用状况

JDK 版本使用状况

即便在今天 Java 13 都已经发布了,Java 8仍然是使用最普遍的 JDK 版本。不过, Java 8 仍然从去年的84.7%降低到今年的79.8%。我以为这很大程度上由于 JDK 8 是一个较为里程碑的版本,JDK 8 提供了 Lambda 表达式、函数式接口、Stream 流等等很是方便开发的新特性。为何 Java 8 仍是采用最多的 JDK 版本呢?我以为还有一点很是重要的缘由是:不少人连 Java 8 的新特性都没玩熟,连最基本的 Lambda 表达式和 Stream 流都玩不转,显然你引入更高版本的 JDK ,里面不少新特性大部分也不必定会用,并且不必定能用到。关于 Java 8 新特性,能够查阅这篇文章:Java 8 新特性最佳指南git

2.Spring Framework 的使用

Spring Framework 的使用

与 Java 相对,这是一个彻底不一样的故事。去年Spring4超过50%,如今已经达到30%,而Spring5从今天的24%上升到今天的58.4%。我以为这大几率是由于 Spring Boot 最新的版本内部就是集成的 Spring 5,而且Spring 5 更有利于开发者进行开发。github

Java EE的使用占比也颇有趣,从去年的9.5%上升到如今的14%。web

3.Spring Boot 的使用

Spring Boot 的使用

对于 Spring Boot,能够看出还有 Spring Boot 已经成为最主流的 Java Web 框架,这点咱们在平时工做和学习中也是能够清楚看到的。可是,仍然有接近 25% 的开发者并无选择使用更优秀的 Spring Boot,难道是为了维护老项目或者是不想拥抱更加优秀的技术?面试

Spring Boot 2.0+从去年的30%上升到如今的60.5%。Spring Boot 在咱们平时开发中使用的太普遍了,通常状况下进行新项目的开发都会优先选择Spring Boot 而且是它的最新版本。为此,我本身也开源了一份 Spring Boot 学习指南:https://github.com/Snailclimb/springboot-guide (目前已经支持在线阅读!)spring

4.构建工具的使用

构建工具的使用

构建工具的数据貌似很稳定,和去年同样,Maven 仍是开发者使用最普遍的构建工具。数据库

这点其实仍是令我比较诧异的。虽然,我知道大部分国内用户和公司都是使用 Maven 的,这点你能够经过在 Github 上搜索 Java 项目有比较清楚的认识。可是,我觉得国外会优先使用 Gradle ,毕竟 Gradle 相比于 Maven 在不少方面作的仍是要好点。并且,我所在的外企公司在前几年就开始大规模采用 Gradle 开发 Java 项目了,不说其余的。我我的以为 Gradle 用起来更舒服一点,也推荐各位能够尝试一下。缓存

5.IDE 的采用

编辑器的使用

IntelliJ 毋庸置疑是使用最普遍的 IDE。可是, 为啥 Eclipse 今年都还有 32.8% 的占比,虽然,相比于去年的38%下降了很多。springboot

6.web 服务器的采用

web 服务器的使用

Tomcat 仍然是开发者中使用最普遍的 web 服务器,市场占有率高达 73 %。Spring Boot 默认使用的 web 服务器就是 Tomcat 了,我想这也为它的市场占有率的增长加了把火🔥。服务器

Spring Boot支持如下嵌入式servlet容器:

Name Servlet Version
Tomcat 9.0 4.0
Jetty 9.4 3.1
Undertow 2.0 4.0

您还能够将Spring引导应用程序部署到任何Servlet 3.1+兼容的 Web 容器中。

7.其余基于 JVM 的语言

虽然 Kotlin 被普遍采用和接受,可是仍然有 62.6% 的开发人员仅使用 Java。Kotlin 13%增加到了今天的16.5%。

Groovy从今天的19.3%降低到了17.4%,如今大多数注意力都转移到了Kotlin身上。Scala 也下跌了约1.1%,目前跌至8.6%。

所以,趋势很明显– Kotlin正在逐渐淘汰其余JVM语言

8.数据库的使用

数据库的使用

数据库领域感受 MySQL 、PostgreSQL、OracleDB这三者所占的比例仍是比较大的,MySQL 依然是开发者中使用最普遍的。可是,PostgreSQL大有超过之势头,PostgreSQL自去年以来增加了5%。非关系数据库使用最普遍的仍是 MongoDB 而后是 Redis,平时开发中,但凡并发量会稍大一点,都会选择使用 Redis 做为缓存层,避免过多请求直接访问数据库。

9.总结

我我的感受上面的数据统计状况大部分都是意料之中,让我感到意外的是构建工具的使用以及使用 Kotlin 的开发者的占比。

总而言之,本文对Java 社区进行了很是酷的介绍。

公众号

若是你们想要实时关注我更新的文章以及分享的干货的话,能够关注个人公众号。

《Java面试突击》: 由本文档衍生的专为面试而生的《Java面试突击》V2.0 PDF 版本公众号后台回复 "Java面试突击" 便可免费领取!

Java工程师必备学习资源: 一些Java工程师经常使用学习资源公众号后台回复关键字 “1” 便可免费无套路获取。

个人公众号

相关文章
相关标签/搜索