“404x5”年Java技术报告
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。
以下数据来源来自于jrebel的在线调查。统计了400多份调查问卷,和真实数据相比会有出入,仅供参考。
使用的Java版本
首先看一下使用的Java版本。可以看到,接近58%的用户在使用Java8版本,这依然是使用最多的版本。使用Java11稳定版的用户,也有23%左右,甚至有6%的用户更加激进的尝试更新版本。
值得注意的是,仍然有接近7%的团队,在使用Java7或以下的版本。这或许是一些正在等待死亡的项目吧。
使用服务容器
Tomcat一枝独秀,超第二名的Jetty接近5倍,这是一个终结者么?
Weblogic和WebSphere也占据了超过10%的市场,不得不说,在追求轻量级应用的今天,有钱的大爷还是很多的。花钱买放心,皆大欢喜。
相比较,JBoss也有不少的市场,和上面这两位一样,它们都可以对企业收费,也就是有较好的商业支持,很多企业还是吃这一套的。
点评:作为占有率这么高的服务容器,Tomcat的源码是非常值得一读的。
主要开发框架
又是一个一统天下的技术。SpringBoot凭借其便捷的使用,以及全面的覆盖,使用率超过82%。它的极速发展,还与近几年微服务的推广有关。其他的容器,应用少的可怜,包括宣传的很不错的Vert.x,使用也才1%。其他的能排上的几个框架,有Dropwizard、Micronaut、Quarkus等。
点评:如果你不是很确定某个框架的发展趋势和技术细节,就不要引入一些乱七八糟的技术,给整个项目组添堵。
开发技术
毋庸置疑,Spring最受欢迎。那个把Java从复杂的开发环境中解救出来的英雄。相对于国内MyBatis的广泛应用,国外有51%的用户使用Hibernate、JPA等工具进行开发。26% 使用JAX-RS 或者JAX-WS技术做接口暴露(比如 Jersey, RESTEasy, CXF, Axis)。在响应式编程方面,有11%的用户使用Vert.x, Akka, RxJava, 或者Project Reactor。令人吃惊的是,仍然有大约7%仍然使用EJB。
点评:技术的更换成本是很大的,上船容易下船难。终有一天Spring会老去,我们该何去何从?
配置方式
得益于SpringBoot的出现,基于注解的配置成为主流。仍然有很多用户在使用xml和yaml等其他配置方式。
18%的用户比较自信的选择了使用Java代码进行配置的初始化。
点评:越简单,越流行。
IDE
绝大多数的人选择了IDEA,像我这样的穷B选择了IDEA的社区版。仍有24%小伙伴顽固的使用Eclipse。
另外,VSCode作为一只新秀,占据了10%。
点评:jetbrains家族的编辑器真香。
JRE/JDK发布版本
使用最多的当属OracleJDK,加上Oracle的OpenJDK,几乎覆盖了整个市场。国内几乎没有Open不Open的概念,所以它们的区别我们可以忽略。Java11之后Oracle JDK成为收费软件,或许会促进转向OpenJDK的过程。
Azul Zulu作为“性能最高”的收费JVM,约占据了2%,就已经活的很好了。
点评:有非常多的监控工具和优化工具,是基于特定版本去做的。Open是大势所趋,但有的是公司“不差钱”。
数据库
Oracle真是家有钱的公司,DB方面份额依然很大。在国外,竟然有47%在使用PostgreSQL,这个数字远超在国内流行的MySQL。
虽然有诸多问题,加上修改许可证,对MongoDB的使用还是达到了12%。其余的NoSQL,比如Cassandra,也有较好的应用。
点评:2020年的世界,仍然是关系型的。
构建工具
Maven和Gradle毫无疑问是最流行的,Gradle的流行可能和移动端开发有非常大的原因。
另外一个就是古老的Ant,占据了7%。
虚拟化工具
微服务伴随着虚拟化,Docker风采依旧。Kubernetes单独使用的场景也比较多,占据了35%。
另外,有14的反馈根本没有使用虚拟化。说实话,这个数字有点小了。
常见的Java问题
在使用Java中,常见的线上问题有。
长时间的服务停顿,看来GC优化仍然任重道远。
深层微服务会加剧这个症状。
内存泄漏。
永无止境的捉虫历程。
高CPU占用。
代码需要优化优化再优化。
连接数太多。
I/O占用太多。
END
可以看到,大多数同行的开发,集中在Docker虚拟化基础上,使用SpringBoot框架,IDEA开发,Tomcat容器,PG、MySQL数据库。一边骂着Oracle,一边用着它的JDK。
希望对你有所帮助。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。
近期热门文章
《996的乐趣,你是无法想象的》
魔幻现实主义,关爱神经衰弱
《一切荒诞的傲慢,皆来源于认知》
不要被标题给骗了,画面感十足的消遣文章
《必看!java后端,亮剑诛仙》
后端技术索引,中肯火爆。全网转载上百次。
《学完这100多技术,能当架构师么?(非广告)》
精准点评100多框架,帮你选型
“404x5”年Java技术报告相关推荐
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告,第 2 部分
本周您推脱老板的 #432 创新理由了吗?您是否尝试过推脱? 本系列的其他文章 读取.回收和重用:使用 Excel.XML 和 Java 技术轻松搞定报告,第 1 部分 有幸的是,您不必推脱.本系列的 ...
- Java老矣,尚能饭否?2020 Java生态系统报告出炉
来自:漫话编程 最近,Jrebel公布了一份2020 Java生态系统报告,这份报告主要关注开发人员在开发过程中使用的技术. 这份报告包含了技术人员正在用的编程语言.应用程序架构.应用服务器.运行时平 ...
- 智能车竞赛技术报告 | 智能车视觉 -重庆大学 - 风林火山
简 介: 本文主要介绍了基于RT Thread操作系统的智能视觉组四轮循迹智能小车系统的原理.软硬件设计以及小车制作过程,对小车的系统介绍包括车模机械结构的设计.模块电路的设计.传感器信号的处理.控制 ...
- “Duke选择大奖”荟萃2009最具创新的Java技术应用
Sun Microsystems公司(NASDAQ: JAVA)今天宣布第七届年度"Duke选择大奖"(Duke's Choice Awards)获奖者名单."Duke选 ...
- 最受欢迎的java技术_最受欢迎的Java环境
最受欢迎的java技术 该职位将是即将发布的系列文章中的第一篇. 我们从所使用的环境开始:如果您感兴趣的是最受欢迎的JVM供应商或JVM版本,那么32bit是比64bit更流行的体系结构,还是Wind ...
- java技术_2020年最流行的Java开发技术
点击上方"千锋教育"后台回复「 Java 」,领取视频学习教程 在本文中,我们将以编程界最常用的编程语言Java为例,分享最为主流的技术与工具.Java几乎无处不在,无论在智能手机 ...
- java实验册_Java实验报告册Java实验报告册.doc
Java实验报告册Java实验报告册 <面向对象程序设计> 实验报告与习题册2013 / 2014 学年 第1学期系 别 计算机科学与技术系专 业 班 级 姓 名 指导教师 目 录 项 目 ...
- 2019 Java发展趋势报告:Java老矣,Java正年轻
作者丨Ben Evans.Erik Costlow.Dustin Schultz.Charles Humble 译者丨无明 Java 已经是一门具有 20 多年历史的老牌语言,雄霸编程语言排行榜榜首多 ...
- Java 老矣,尚能饭否?2020 Java生态系统报告出炉
作者 | 漫话编程 本文经授权转载自漫话编程(ID:mhcoding) 最近,Jrebel公布了一份2020 Java生态系统报告,这份报告主要关注开发人员在开发过程中使用的技术. 这份报告包含了技术 ...
最新文章
- webdynpro GOS BDS 文档/附件 上传下载处理
- Codeforces 797C Minimal string【贪心】
- redis设置为控制台打印日志
- c语言中二次规划函数是哪个好,c语言程序设计规划模拟试题二(含答案).doc
- C#中的套接字编程(一) --转
- C语言strcat()库函数的实现
- amp;#9733;一名“标题党”自我修炼的10…
- vuforia for unity 注意事项
- android10LTE,Jelly 2:全球最小的Android 10 4G智能手机
- 何通过ArcCatalog本地发布地图服务
- CPU 流水线的前世今生
- 青蛙的约会(poj 1061)exgcd基础题
- helm3.7.2及helm-push_0.10.1安装及使用
- 第五章-I/O设备管理 习题
- 服务器flash卡的作用是什么原因,直播卡顿原因详解及优化
- 最简单的MySQL安装教程(数据库免安装版,免安装版,亲测好用) mysql-5.7.33-winx64.zip
- 公司产品移动端网页-前端网页设计技术精美网站源码HTML+CSS+JS
- SQL中的WHILE循环使用
- ILOG CPLEX OPL 编程手册,使用心得与简单例子
- [MIT]微积分重点 第六课 sinx和cosx的导数 学习笔记