你准备好了吗,9月19日Java21要来了
前言
9月份的TIOBE编程语言榜单已公布,Python依然是第一,Java第四。
而这个月还有一个重要的事情,就是9月19日Java21将会全面发布,一段时间没关注的我一口老血喷在屏幕上。
我记得我写Java17新特性好像还没多久,Java你要不要这么努力。
大家可以看一下9月份前20的语言排名

正文
1、排行简单分析
根据榜单可以发现,前五名还是那几个,这5年都没变过,只是互相挤来挤去。
Python、C、C++、Java、C#
Python,不说了,国外太火排第一不意外,国内前几年忽悠过一些程序员,后来发现入圈门槛太高,光速退圈。
C++,好像有那么点意思了,不知道经历了什么。
C#,你就没想过当老大?
PHP,你倒是说句话啊!
JavaScript还是猛啊,20年来一直在前10,还往上升,你忍了这么久是要篡位吗?
Golang,你还是Go Go Go吧,你个扶不起的阿斗,黑马气的继续推Java,尚硅谷气的疯狂推大数据。
Kotlin,你说你是不是看Java不爽很久了?Java当年从18窜到第1,你敢不敢。
Rust,这年头,不打广告都挤不进国内市场。
Java程序员别轻易转以上语言,我不建议,以目前国内的就业形势而言,没啥必要,学习成本也不低。
现实点,不管卷不卷,国内后端还是Java好找一点,先认清现实,再考虑别的。
学习第二语言,都差不多,反正你很难找到工作,那我推荐学Python,至少可以陶冶情操。
2、Java21有什么好
因为我还停留在对于Java17的研究,没想到稍微不留神,Java21就要来了。
我大意了,赶紧查阅了下Java21的新特性,也还好,有些都是之前版本的预览特性,只是转正了。
不过里面有一个值得关注的,就是虚拟线程,终于确定要发布了。
其实就是其他语言中出现过的协程,说到这里不得不谢谢Golang。
GO大火的那两年,因为GO的容器快速启动,Java生态中开始出现Spring Native。
因为GO的协程,Java生态中开始出现虚拟线程。
因为GO的低延迟GC,Java生态中开始引入ZGC,降低堆内存和CPU开销的垃圾回收器。
不得不说,作为同样的后端编程语言,Golang某种程度上推动了Java生态的发展,让它走出安乐窝。
从Java17这个革命性的版本,再到Java21的LTS版本即将发布,我认为这种趋势对于Java程序员来说是好现象,有助于Java生态的持续进化。
所以,我们要保持关注。
3、Java新特性要马上学吗
虽然新特性很吸引人,可以说从Java11开始,Java的一些新特性就层出不穷。
里面能看出吸纳了许多其他语言的亮点,这也没啥,按照编程语言的客观发展规律,尽头也就是相互借鉴(你抄我我抄你)了。
那么,新特性一定要马上学吗,我的回答是不必,了解一下即可。
我以虚拟线程为例,它实际上并不会促进企业朝着Java21的版本跟进。
我主要从以下几点考量:
1)、业务需求和技术栈
公司是否对 JDK 21 中的新特性有实际需求,并且能够从中获得业务上的收益,要打个问号。如果公司的现有技术栈和应用程序可以很好地运行在 Java 8 上,并且没有迫切需要使用虚拟线程的情况下,可能不会立即进行升级。
2)、稳定性和成熟度
虚拟线程之前是作为实验特性,可靠性和稳定性尚未经过广泛测试和验证。对于一些对系统稳定性要求较高的公司来说,他们可能更倾向于等待虚拟线程在未来版本中成熟和稳定之后再进行升级。相比于高版本的Java,我觉得企业会更倾向于Java11,然后平滑过渡到Java17。
3)、开发团队的意愿和能力
公司的开发团队是否具备学习和适应 JDK 21 中的新特性的能力,并且是否希望利用虚拟线程来改进他们的代码和应用程序。这取决于团队的技术储备和开发资源的可用性。说白了,你以后要不要招必须熟悉Java21的程序员,这显然不现实,也不是很多中小企业的面试评判标准。
总结
最后讲个题外话,我们公司几个月前有尝试过直接从Java8升级到Java17,因为Springboot3.0最低支持Java17,如果新项目想用SpringBoot3.0版本,就只能升级到Java17。
但是升级过程令人崩溃,有太多关联的中间件也要一起升级了,每个过程都有坑,而有些组件还升级不了,除非换成别的,这样一来升级成本太大,公司已经成熟的一套技术体系面临改造。
种种考虑过后,决定暂时放弃这个想法,等到SpringBoot3.0、Java17版本以及关联的整个生态稳定之后,再考虑升级的事情。
其实就是等别人踩完了我们再踩,哈哈。
如果喜欢请点赞关注↓↓↓,持续分享干货哦!
你准备好了吗,9月19日Java21要来了的更多相关文章
- Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档
array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...
- 2016年12月19日 星期一 --出埃及记 Exodus 21:14
2016年12月19日 星期一 --出埃及记 Exodus 21:14 But if a man schemes and kills another man deliberately, take hi ...
- 2016年11月19日 星期六 --出埃及记 Exodus 20:10
2016年11月19日 星期六 --出埃及记 Exodus 20:10 but the seventh day is a Sabbath to the LORD your God. On it you ...
- 2016年10月19日 星期三 --出埃及记 Exodus 19:3
2016年10月19日 星期三 --出埃及记 Exodus 19:3 Then Moses went up to God, and the LORD called to him from the mo ...
- 7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io
7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io undefined
- 成都Uber优步司机奖励政策(4月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(4月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(3月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(2月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 北京Uber优步司机奖励政策(1月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
随机推荐
- FreeSWITCH添加自定义endpoint
操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 日常开发过程中会遇到需要扩展FreeSWITCH对接其它系统的情况,这里记录下编写FreeSWITCH ...
- MySQL之常用函数介绍
一:函数的简介 函数可以把我们经常使用的代码封装起来,需要的时候直接调用即可.这样既提高了代码效率,又提高了可维护性.在SQL中我们也可以使用函数对检索出来的数据进行函数操作.使用这些函数,可以极大地 ...
- vivo 帐号服务稳定性建设之路-平台产品系列06
作者:vivo 互联网平台产品研发团队- Shi Jianhua.Sun Song 帐号是一个核心的基础服务,对于基础服务而言稳定性就是生命线.在这篇文章中,将与大家分享我们在帐号稳定性建设方面的经验 ...
- 记一次 .NET 某旅行社审批系统 崩溃分析
一:背景 1. 讲故事 前些天有位朋友找到我,说他的程序跑着跑着就崩溃了,让我看下怎么回事,其实没怎么回事,抓它的 crash dump 就好,具体怎么抓也是被问到的一个高频问题,这里再补一下链接: ...
- Git 多账号配置
本地登录多账号并连接对应的远程仓库,主要就是 密钥配对,我这里刚开始配了密钥也将密钥复制到ssh但是还是连接不到第二个远程仓库,后来发现是需要 密钥代理 1.在当前项目下更改git账号信息: git ...
- 使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调
本文主要探讨如何使用指令微调的方法教会 Stable Diffusion 按照指令 PS 图像.这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如: 将 ...
- Kubernetes(k8s)访问控制:权限管理之RBAC鉴权
目录 一.系统环境 二.前言 三.Kubernetes访问控制 四.鉴权简介 五.配置客户端机器 六.设置k8s集群允许所有请求访问 七.设置k8s集群拒绝所有请求访问 八.RBAC授权 8.1 ro ...
- Java反射源码学习之旅
1 背景 前段时间组内针对"拷贝实例属性是应该用BeanUtils.copyProperties()还是MapStruct"这个问题进行了一次激烈的battle.支持MapStru ...
- Java 集合框架体系简介
为什么要使用集合 存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制.比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改:数组在创建时需要指定元素的类型,并且 ...
- 今天做php缓存发现一个批量替换非法关键词的php代码
<?php $badwords = array('aa', 'bb'); // 敏感词数组 $str = "aa阿斯顿克拉拉斯柯达bb阿萨达速度"; $result = fi ...