首先祝大家新年快乐,假期都玩的开心吧?
去年栈长给大家盘点了《Java 开发行业 2020 年发生的几件大事》,2022 年来了,也必须对 2021 做个总结了,2021 年 "Java技术栈" 都有哪些值得关注的事情呢?
这篇必须看完,因为这些技术事件可能影响你未来的就业、以及公司在技术选型上的决策,多花一点时间,多掌握一点技术,你就能走到别人的前面。
2021 大总结
1、编程语言排行
最新 TIOBE 编程语言排行榜如下:
Python 在 2021 年 10 月,终于打败 C 语言成为新王者。
这也是这 20 多年来,继 C 和 Java 语言之后,首次出现的新的王者语言,Java 和 C 语言长期霸榜的时代已经结束了,Java 较去年又跌一名,现在已经轮为老三了。。。
虽然 Java 看似正在走下坡路,但也不要灰心,这只是一个榜单而已,并不代表 Java 生态在走下坡路,也不代表 Java 不值得学了,只能说 Java 已经趋向稳定了,正是因为这种稳定性,Java 在网络上被搜索、下载、学习的次数已经没那么爆发式的增长了,所以会造成一种 Java 走下坡路的假象。
所以,我们该学学、该上班上班,不要受排行榜影响,Java 依然还是最香的语言之一,现在无数的 Java 就业岗位、火热的开源社区、强大且丰富的生态、一家又一家的在线培训机构拔地,这都说明了一切,Java 依然老当益壮,市场就是最好的见证。
2、JDK 17 发布
JDK 自从改了版本规则,这版本就停不下来,至 2021 年底,Oracle 已经发了两个版本了:
JDK 16 不是一个长期支持的版本,只支持 6 个月到 2021 年 9 月。
JDK 17 是自 2018 年 JDK 11 后的第二个长期支持版本,最长可支持到 2029 年 9 月,下一个长期支持版本是 JDK 21,要到 2023 年发布了。
来看下最新 Oracle Java 支持路线图:
2022 年,JDK 18, 19 也要相继发布了,大家还跟得上吗?
不过,JDK 18, 19 都是非长期支持版本,没必要追,可以无视!
3、JDK 正式免费
Oracle 宣布,从 JDK 17 开始正式免费,包括商用:
Oracle 在 2021 年改了 JDK 收费条款:
https://www.oracle.com/downloads/licenses/no-fee-license.html
JDK 17 后面发布的 JDK 都全部免费,但是之前的版本该收费还是收费的。
需要注意的是,JDK 17 也不是长期免费商用的,目前来看只支持到 2024 年 9 月,之后可能要收费,也可能继续免费,这个不确定性就有点不能接受。。
4、Java 协程要来了
我们都知道,Java 目前最小的系统调度单元只支持线程,官方是不支持协程的,但不久的将来,Java 要开始支持协程了:
在 openjdk 的官网上,2021/11/15 这天创建了一个新的特性:JEP draft: Virtual Threads (Preview)
目前这还是个草案,预览特性,很多细节并不是很确定,是不是叫协程?或者纤程?还是虚拟线程?现在也没有官方的中文资料,叫什么不重要,我们都知道的是,Java 中的 "协程" 它要来了!
因为使用线程的成本很高,所以才会有了虚拟线程,它是用户态线程,成本是相当低廉的,充分提高了硬件利用率,高并发也上了一个量级,从而实现了高吞吐量。
更详细的解读可以点击链接回顾:
了解和关注 Java 最新技术动态,请关注公众号Java技术栈,公众号第一时间推送。
5、Log4j2 核弹级漏洞
Apache Log4j2 最近爆的核弹级漏洞想必大家都知道了,引起了不少轰动,朋友圈、技术圈都炸锅了,各种紧急上线。
Log4j2 核弹级漏洞结束后,又发现各种漏洞,没完没了,最新版本已经从 v2.15.0 发到了 v2.17.1 了:
JDK 版本 | Log4j2 最新安全版本 |
---|---|
Java 8+ | v2.17.1 |
Java 7 | v2.12.4 |
Java 6 | v2.3.2 |
修复的已知漏洞就有 5 个:
- CVE-2021-44832(远程代码执行漏洞)
- CVE-2021-45105(拒绝服务攻击漏洞)
- CVE-2021-45046(远程代码执行漏洞)
- CVE-2021-44228(远程代码执行漏洞)
- 信息泄漏漏洞(安全公司 Praetorian 发现)
麻了,麻了,折腾了大半个月了,现在还看不到收尾的迹象,真是杀疯了。。
另外需要关注的是,Logback 最近也爆雷了:
Log4j 1.x 也早就停止维护了,本身也存在没有修复的漏洞,不建议用了:
漏洞这块栈长还在持续关注,有第一进展栈长再通知大家,关注公众号Java技术栈,公众号第一时间推送。
6、Spring 家族
作为一名 Java 开发,不得不关注 Spring 的发展动态。
6.1 版本更新
我们来看下 2021 几个重要项目的最新版本:
项目 | 版本号 |
---|---|
Spring Framework | 5.3.14 |
Spring Boot | 2.6.2 |
Spring Cloud | 2021.0.0 |
Spring Security | 5.6.1 |
Spring Data | 2021.1.0 |
Spring Boot 是整个 Spring 家族的核心,相辅相成,我们也都是基于 Spring Boot 来进行开发的,Spring Boot 的最新版本有必要提前了解和规划下:
Spring Boot 已经发到 2.6.x 了,2.5.x 也是最后一个安全版本了,你们用的哪一个版本呢,技术更新太快了,很多公司估计跟不上。
Spring Boot 2.7.x 还有半年不到也要和大家见面了,到时候栈长再给大家详细解读,大家可以持续关注公众号Java技术栈,公众号第一时间推送。
Spring Boot 基础就不介绍了,推荐下这个实战教程:
6.2、干掉 JVM
Spring 在今年 3 月份推出了 Spring Native Beta 版本,无需 JVM 环境,它提供了另外一种运行和部署 Spring 应用的方式,通过 GraalVM 将 Spring 应用程序编译成原生镜像。
Spring Native 另外两个优势就是启动速度快、内存占用少。
一般情况下,运行基于 JVM 的应用程序大概需要 15 秒左右,而运行 Spring Native 原生应用程序只需要 100 毫秒以下:
如图,栈长做了测试,82 毫秒就启动了,启动确实快。。
更多 Spring Native 的介绍及实战可以点击链接回顾:
另外,Spring Native 虽然干掉了 JVM,但不代表 Spring 干掉了 JVM,其他依存于 JVM 的 Spring 项目依然正常运转,JVM 系目前不会消亡,两者不冲突。
6.3 干掉 Spring Security OAuth
Spring Security OAuth 项目已经被弃用了:
Spring Security OAuth 项目已被 Spring Security 项目接管,Spring Security 也不再包含对授权服务器的支持。
后来,Spring 又在群众的呼声下,Spring 继续提供对 授权服务器的支持,推出了 Spring Authorization Server
项目,2021 年正式转正。
更详细的解读可以点击链接回顾:
7、Kafka 弃用 Java 8
Kafka 3.0.0 发布了:
第一条就是宣布弃用对 Java 8 和 Scala 2.12 的支持!!!
但 3.0.0 还能用,这次宣布只是给用户一个调整的时间,到了 Kafka 4.0,Java 8、Scala 2.12 将将正式取消支持。
其实,其他一些中间件也早有停止对 Java 8 的支持,选择 Java 11 作为最低支持版本,Java 8 虽然有点老了,但依然是现在市场上用的最多的版本,虽然有些中间件不再支持 Java 8 了,但实际开发工作并不受影响。
更详细的解读可以点击链接回顾:
Java 8+ 系列教程我也写了一堆了,关注公众号Java技术栈在菜单栏中进行阅读吧。
8、CentOS 8 正式终止
CentOS Linux 8 已于 2021 年 12 月 31 日终止:
CentOS 8 的终止,意味着以后都是 CentOS Stream 的天下了。。
RHEL(红帽企业 Linux)这是逼大家不得不使用付费版本?这其中的奥秘只有它自己清楚了!
所以现在不建议在生产环境中使用 CentOS Stream,已经使用 CentOS 8 的也建议退回到 CentOS 7 上面去,毕竟 CentOS 7 还是主流,稳定、可靠,并且支持到 2024 年 6 月 30日,短期内不会造成影响。
2024 年后,大家会使用 CentOS Stream 吗?还是会选择付费版本?还是会选择其他的 Linux 发行版,栈长也会持续关注,关注公众号Java技术栈,公众号第一时间推送。
更详细的解读可以点击链接回顾:
9、LayUI 官网下线
layui 官网将于 2021年10月13日 进行下线:
需要注意的是,LayUI 仅仅是从官网下线,但并不意味着终结,并不意味着 LayUI 的停止维护,后续新版本的发布,以及日常维护工作已经迁移到 Github/ gitee 代码托管平台了。
另外,LayUIAdmin 和 LayIM 也会迁移到新的官方网站,也仅仅是为老用户保留了一个下载通道而已,两者将不再面向新用户开放。
这么些年,和后端框架一样,前端框架也是换了一波又一波了,现在 Vue.js、React、AngularJS 算是引领着前端框架的发展趋势,老牌 LayUI 确实没优势了,另外,关注公众号Java技术栈,回复:vue,可以获取最新 Vue 3.0 高清 PDF 教程。
更多可以点击链接阅读往期回顾:
10、新生代农民工
还记得朋友圈这波疯狂转发吗?
这波 IT 新生代民工自嘲也是逗翻天了,朋友圈再次被沦陷。。
其实,我们把 IT 人员纳入 "新生代农民工" 一说,还真有点过分解读了。
栈长再来明确下 新生代农民工 的定义:
- 80 后
- 16 岁及以上
- 农村户口
- 异地工作
- 从事非农行业
同时满足以上 5 点,你才是"新生代农民工"!!!
所以说,"新生代农民工" 并非就等于 IT 民工,而是代表全行业,那个通告只是放大了 IT 民工,官方只是想强调说 IT 民工大幅提高了而已,两者并不是 == 的关系,而是 contains 的关系:
新生代农民工.contains(IT民工)
详细解读可以点击链接阅读往期回顾:
2022 来了!
好了,2021 给大家总结了 Java 技术栈的一些重大事件,希望对大家有帮助。
2022 年,栈长也会继续扬帆起航,给大家输出更多的技术干货和资讯,关注公众号Java技术栈,不迷路。
最后祝大家 2022 新年快乐,虎年大吉,生龙活虎,虎虎生威!!
无需赞赏,有收获大家转发一波就好,感谢支持~
版权声明!!!
本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2022最新版)
4.Spring Boot 2.6 正式发布,一大波新特性。。
觉得不错,别忘了随手点赞+转发哦!