4份报告简读Java生态

createh51个月前 (01-20)技术教程24

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

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 等项目出现。

相关文章

从零开始学Java系列之最详细的Java环境变量配置教程

前言:在上一篇文章中,壹哥给大家重点讲解了Java实现跨平台的原理,不知道你现在有没有弄清楚呢?如果你还有疑问,可以在评论区留言~之前的三篇文章,主要是理论性的内容,其实你暂时跳过不看也是可以的,我们...

Java开发环境配置

编者按本讲是Java系列文章的第2讲,开发环境配置。兵马未动,粮草先行;工欲善其事必先利其器!内容提要俗话说的好:工欲善其事,必先利其器!Java开发环境配置是每位Java开发者必须掌握的基础知识,...

Java开发环境最丝滑的打开方式

本文通过【Jar包仓库优化】、【文件系统优化】、【远程开发】等各种手段将我们的Java开发环境打造得如同流沙一般丝滑,卡顿是不可能卡顿的,这辈子都不可能卡顿了。当然我们主要用的IDE仍然是vscode...

java1.8安装及环境变量配置详细教程!(专业保姆级,小白秒会)

hello大家好!很多人在日常学习办公过程中安装一些软件,尤其是一些专业软件,需要各种运行环境和库的支持才能正常使用,但是很多小伙伴由于是初次接触,不懂得其中的原理,自己折腾半天也摸不着头脑。比如有的...

java工具篇-jdk环境

Jdk环境,使用过的有jdk1.5,jdk1.6,jdk1.8,其他的不说,这三个版本是阶段性的,在实践中区别较大,其中用的最多的是1.6和1.8。如果遇到面试,jdk的差别?1.5开始有泛型,这个是...

手把手教你搭建java环境

前文由于一些历史原因,开发java程序需要技术人员自行搭建环境,而搭建环境对于新手来说并不友好,不像其他语言那般方便,现如今,为帮助想入门java却无法顺利搭建的同学,编写该教程,如果觉得本文有用,请...