首先祝大家新年快乐,假期都玩的开心吧?

去年栈长给大家盘点了《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 最新技术动态,请关注公众号Java技术栈,公众号第一时间推送。

5、Log4j2 核弹级漏洞

Apache Log4j2 最近爆的核弹级漏洞想必大家都知道了,引起了不少轰动,朋友圈、技术圈都炸锅了,各种紧急上线。

Log4j2 核弹级漏洞结束后,又发现各种漏洞,没完没了,最新版本已经从 v2.15.0 发到了 v2.17.1 了:

炸了!Log4j2 再爆漏洞,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 最近也爆雷了:

Logback 也爆雷了,惊爆了。。。

Log4j 1.x 也早就停止维护了,本身也存在没有修复的漏洞,不建议用了:

团灭!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 基础就不介绍了,推荐下这个实战教程:

https://github.com/javastacks/spring-boot-best-practice

6.2、干掉 JVM

Spring 在今年 3 月份推出了 Spring Native Beta 版本,无需 JVM 环境,它提供了另外一种运行和部署 Spring 应用的方式,通过 GraalVM 将 Spring 应用程序编译成原生镜像。

Spring Native 另外两个优势就是启动速度快、内存占用少。

一般情况下,运行基于 JVM 的应用程序大概需要 15 秒左右,而运行 Spring Native 原生应用程序只需要 100 毫秒以下:

如图,栈长做了测试,82 毫秒就启动了,启动确实快。。

更多 Spring Native 的介绍及实战可以点击链接回顾:

王炸!!Spring 终于对 JVM 动手了…

另外,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 年正式转正。

更详细的解读可以点击链接回顾:

再见,Spring Security OAuth!!

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 了,但实际开发工作并不受影响。

更详细的解读可以点击链接回顾:

卧槽!Kafka 宣布弃用 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技术栈,公众号第一时间推送。

更详细的解读可以点击链接回顾:

再见,CentOS!2021/12/31 宣布正式停服。。

9、LayUI 官网下线

layui 官网将于 2021年10月13日 进行下线:

需要注意的是,LayUI 仅仅是从官网下线,但并不意味着终结,并不意味着 LayUI 的停止维护,后续新版本的发布,以及日常维护工作已经迁移到 Github/ gitee 代码托管平台了。

另外,LayUIAdmin 和 LayIM 也会迁移到新的官方网站,也仅仅是为老用户保留了一个下载通道而已,两者将不再面向新用户开放。

这么些年,和后端框架一样,前端框架也是换了一波又一波了,现在 Vue.js、React、AngularJS 算是引领着前端框架的发展趋势,老牌 LayUI 确实没优势了,另外,关注公众号Java技术栈,回复:vue,可以获取最新 Vue 3.0 高清 PDF 教程。

更多可以点击链接阅读往期回顾:

突发!LayUI 宣布下线。。。

10、新生代农民工

还记得朋友圈这波疯狂转发吗?

这波 IT 新生代民工自嘲也是逗翻天了,朋友圈再次被沦陷。。

其实,我们把 IT 人员纳入 “新生代农民工” 一说,还真有点过分解读了。

栈长再来明确下 新生代农民工 的定义:

  • 80 后
  • 16 岁及以上
  • 农村户口
  • 异地工作
  • 从事非农行业

同时满足以上 5 点,你才是”新生代农民工“!!!

所以说,”新生代农民工” 并非就等于 IT 民工,而是代表全行业,那个通告只是放大了 IT 民工,官方只是想强调说 IT 民工大幅提高了而已,两者并不是 == 的关系,而是 contains 的关系:

新生代农民工.contains(IT民工)

详细解读可以点击链接阅读往期回顾:

别自嗨了!想做新生代农民工,你还不够格。。

2022 来了!

好了,2021 给大家总结了 Java 技术栈的一些重大事件,希望对大家有帮助。

2022 年,栈长也会继续扬帆起航,给大家输出更多的技术干货和资讯,关注公众号Java技术栈,不迷路。

最后祝大家 2022 新年快乐,虎年大吉,生龙活虎,虎虎生威!!

无需赞赏,有收获大家转发一波就好,感谢支持~

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

发表回复

您的电子邮箱地址不会被公开。