4份报告简读Java生态

小伙伴们好呀,我是小羊。

age++; 后,我决定收敛下好奇心,挖掘下技术深度。

因为这个号叫 Java4ye,所以第一个专栏就从 Java 开始吧!😝

那么现在的 Java 生态发展到什么情况了呢?

这里我收集了四份报告,一起看看吧

Java 生态报告 ------ InfoQ

有四大专栏,下面简单介绍下。

Innovators

Jakarta EE

从 wiki 上了解到的信息,大致意思是:Oracle 将 Java EE 提交到 Eclipse 基金会,然后就改名成这个 Jakarta EE 了。(雅加达)

对照这个图,可以看到 5 开始支持 注解,7 开始支持 WebSocket 等。

Fast JVM Startup (CRaC)

CRaC(协调恢复检查点)项目研究 Java 程序的协调机制,以便在 Java 实例执行时检查点(生成映像、快照)。

从映像恢复可以 解决启动和预热时间 的一些问题。

你可以把预热后的 JVM 保存下来,然后快速启动。 主要是针对 Java 在 微服务 和 serverless 场景下的不足。

下图是 Springboot 3.2 对 CRaC 功能的描述。 👇

下面是 Azul 使用 JDK 17 测试的效果。 效果超给力,确实不是一个数量级的。比如 Spring boot 从 4 s 到 40 ms。

其他

Java21 是目前的最新版, 虚拟线程 功能上线,相应的 虚拟线程框架有 Vert.x 。

Early Adopters

云原生方向的新框架: helidon (虚拟线程), micronaut(全栈)。

Fast JVM Startup (GraalVM)

和上面的 CRaC 不同,它采用 AOT 方式来加速启动 Java。

Early Majority

没想到,Quarkus 来到这一栏了,一直以为还很新颖。

Quarkus 是一个为 GraalVM 和 HotSpot 定制的 Kubernetes 原生 Java 框架

Late Majority

Clojure 是一种现代、功能性、动态的编程语言,它基于Java虚拟机(JVM)运行。它结合了 Lisp 的优雅和 Java 的实用性,提供了强大的并发性和宏系统。

Clojure 这个脚本语言我才发现不久,下面是一个应用例子。

Java 生态热门话题 ------ Vaadin

前三个分别是 微服务 , k8s , AI/ML

第十个是 GraalVM

Java 生态报告 ------ newrelic

这份报告是 23 年 4 月份的,可以看出在 JDK11 之后, G1 垃圾收集器使用率最高。其他内容我就兴致寥寥了,大致说了 JDK17 越来越多人用之类的。

Java 生态报告 ------ Jetbrains

说好的 "你发任你发,我用 Java8" ,结果这么多 17 了。

总结

  1. Java 在朝云原生方向靠拢,出现了好几个新的框架
  2. 虚拟线程是最大的亮点
  3. JVM 在探索快速启动方向
  4. JDK17 是最近的一个 LTS 版本。
  5. 针对 AI/ML ,有 Spring AI 等项目出现。
相关推荐
Flobby5299 分钟前
Go语言新手村:轻松理解变量、常量和枚举用法
开发语言·后端·golang
Warren981 小时前
Java Stream流的使用
java·开发语言·windows·spring boot·后端·python·硬件工程
程序视点2 小时前
IObit Uninstaller Pro专业卸载,免激活版本,卸载清理注册表,彻底告别软件残留
前端·windows·后端
xidianhuihui2 小时前
go install报错: should be v0 or v1, not v2问题解决
开发语言·后端·golang
架构师沉默2 小时前
Java优雅使用Spring Boot+MQTT推送与订阅
java·开发语言·spring boot
tuokuac2 小时前
MyBatis 与 Spring Boot版本匹配问题
java·spring boot·mybatis
zhysunny3 小时前
05.原型模式:从影分身术到细胞分裂的编程艺术
java·原型模式
进击的铁甲小宝4 小时前
Django-environ 入门教程
后端·python·django·django-environ
草履虫建模4 小时前
RuoYi-Vue 项目 Docker 容器化部署 + DockerHub 上传全流程
java·前端·javascript·vue.js·spring boot·docker·dockerhub
皮皮林5514 小时前
强烈建议你不要再使用Date类了!!!
java