很多未解之谜终于有答案了——2018年JVM生态系统报告出炉

简介: 在Java开发者中,一直存在着很多鄙视链。如:IntelliJ → Eclipse → NetBeansUnix → Linux → Mac OS→ Windows → DOSEmacs → Vim → Sublime → Word → Powe...

在Java开发者中,一直存在着很多鄙视链。如:

IntelliJ → Eclipse → NetBeans

Unix → Linux → Mac OS→ Windows → DOS

Emacs → Vim → Sublime → Word → Power Point

这诸多鄙视链中一直存在着很大的争议

也正是存在诸多争议,导致很多开发者更加迷茫

到底选择IntelliJ还是Eclipse?

Java 11 出来了,我要不要升级?

听说SSH过时了?那Hibernate还要不要学了?

Git和SVN,Maven和Gradle,到底如何选?

我今年30岁了,还要继续做开发吗?

笔者无法给出明确的答案,只能给你一些建议。

近日,SNYC出炉了一份2018年JVM生态系统报告

涉及到了很多一直困扰广大Javaer的问题

让我们一起来看一下

全世界的广大开发者是如何解决这些世纪难题的?

生产环境中主要使用哪个厂商提供的JDK

很多厂商都提供了自己的JDK实现,到底哪个厂商提供的JDK更受开发者青睐呢,调查发现,Oracke JDK以70%的绝对优势占据了主导地位。


img_b5599d52dd96df72c5d051d4b197c85c.jpe

生产环境中主要使用哪个版本的Java SE

目前,Java SE 官方版本已经更新到了 Java 11,但是,光大开发者主要使用的版本是哪个呢?


img_a382f878a81f086bfb771705b78bf91d.jpe

调查结果显示,80%左右的用户使用的Java SE 8。

到底如何选择Java版本?


img_6b9af7444af77e922833beec2d5f5fef.jpe

有新的版本JDK出来了,要不要升级这件事或许这份报告中可以有个答案。关于如何选择Java版本上,最多的人选择使用LTS(长期支持版本)版本。目前最新的LTS版本分别是Java 11 和Java 8。

日常开发中,主要使用哪个IDE

这个问题一直是一个未解之谜,Eclipse和IntelliJ IDEA之争由来已久,一直没有定论。


img_c8c045caf25543def6eeba6f7a8e511a.jpe

今年调查报告显示,45%的用户选择IntelliJ IDEA,其中小部分用户使用的是免费的社区版,大部分用户使用付费的专业版。那么,还在使用Eclipse的你要不要"弃暗投明"呢?

主要是用哪个构建工具


img_6cd87e1b1259936d2fff7ad0988d406a.jpe


相比之下,Maven还是占据着主导地位,超过半数用户仍然倾向于Maven。

主要使用哪个静态代码扫描工具


img_ac1cdce4116f3026cdd86dec20bd5371.jpe

静态代码扫描工具的选择,前三名分别是Sonar 、FindBugs和Checkstyle。这三种工具均提供IDE插件,还没使用的小伙伴可以考虑用起来了。

主要使用哪个持续集成工具


img_1d0484b9ad2faeaca719d7ad4f6ea923.jpe


持续集成方面,超过半数的开发者使用Jenkins,这个结果并不出乎意料。

主要使用哪个代码托管工具

目前Git+SVN已经占据了总数的90%,其中大部分开发者首选Git,已经遥遥领先于SVN了。


img_5582245ba6dbfe539e202973d71e6be0.jpe

主要使用哪种单元测试框架

目前市面上单元测试相关的工具有很多,其中最受欢迎的还是JUnit,其次是MOCK框架Mockito。


img_ca783412c6c8c20dfa9da9829099dbb3.jpe

主要使用哪种开发框架

在Java生态系统中,Spring已经是占据了无可撼动的地位。随着微服务等概念的越来越火,Spring Boot等也是越来越受欢迎了。主流的框架已经从SSH演化成 Spring全家桶。


img_64c38ad4735369b3cf9f3b70695c930a.jpe

主要使用哪种ORM框架

Java开发是离不开ORM框架的,几乎很少有开发者通过JDBC进行数据库操作的。

目前使用最广泛的ORM框架还是老大哥Hibernate。


img_f68822b4c1f4d0fee4742c1ff0feb4cf.jpe

主要使用哪种数据库



img_b7d2d9ecacfa9c733cbebaa0f5d20200.jpe

数据上面,使用最多的还是Oracle,第二名是MySql

主要使用哪种应用服务器

在应用服务器的选择上,超过40%的用户选择Tomcat。Tomcat、Jboss、Jetty包揽了前三甲。


img_ffbdf6a82fef28a4f8731565a9cff4ed.jpe

开发者年龄分布

目前,开发者的普遍年龄在30+,其中30-40岁的开发者占总数的40%左右。那些嚷嚷着开发者干到30岁要转行的人可以闭嘴了。


img_1a42dce46f371fb6f13859166e6d2b74.jpe

主要使用的学习网站

开发者主要通过StackOverflow进行学习,俗称面向StackOverflow编程。


img_1fc328e47f5538535deec6b4492357f7.jpe

颁奖时间

以下是关于以上调查报告的总结。下图中的12个获胜者你都有在用吗?


img_9722b243c376a4481cc32a00784e3376.jpe

如果您在今后的开发中,需要做技术选型的时候,可以参考这份调查报告。

那么问题来了,你和广大开发者的选择一致吗?

欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

相关文章
|
7月前
|
消息中间件 存储 Java
jvm性能调优实战 - 47超大数据量处理系统是如何OOM的
jvm性能调优实战 - 47超大数据量处理系统是如何OOM的
77 0
|
7月前
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
101 0
|
7月前
|
存储 分布式计算 前端开发
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
142 0
|
6月前
|
IDE Java Linux
在Maven中设置JVM系统参数及Java应用调试实例
在Maven中设置JVM系统参数及Java应用调试实例
328 0
|
6月前
|
JSON 监控 Java
编写电脑监控软件的Groovy脚本:JVM生态系统的整合与扩展
使用Groovy编写脚本监控Java虚拟机(JVM)的健康状况,包括内存使用和CPU利用率。脚本可自动将数据提交至指定网站,确保及时发现系统问题,防止服务中断。通过结合Runtime和OperatingSystemMXBean类获取系统信息,利用Groovy的HTTP客户端库POST数据到监控网站,实现高效稳定的系统监控。
128 0
|
7月前
|
Java
jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
81 1
|
Java
第二季:2.你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值 【Java面试题】
第二季:2.你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值 【Java面试题】
173 0
第二季:2.你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值 【Java面试题】
|
监控 Oracle Java
百度搜索:蓝易云【Linux系统JVM等性能调优监控【详解】】
为了保证Linux系统上Java Virtual Machine(JVM)等应用程序的高效运行,需要进行性能调优和监控。性能调优和监控可以帮助您识别并解决潜在的问题,提高应用程序的性能和可靠性。
66 0
|
存储 Java
在jvm启动时获取和设置系统属性
获取系统属性需要用到Properties类,但是由于此类没有提供构造方法,所以不可以new对象,只能用System类里面的getProperties方法获得本类对象。
|
Java Linux Windows
在Linux系统中安装jvm虚拟环境并且使用nohup运行进程
运行java就一定要有jvm虚拟环境,在Windows中安装jdk都是非常轻松的,但是在Linux中安装还是耗费了我一定的时间,总的来说还算是容易,下面我就分享一下我的经验