Java17的崛起——newrelic的2024 年 Java 生态系统状

newrelic   2024 年 Java 生态系统状况

原文PDF:点我下载

生产中最常用的 Java 版本

Oracle 每六个月发布一次新的 Java 版本(通常是在 3 月和 9 月),每个版本都包含一些新功能和错误修复。每两年,Oracle 都会推出一个新的 Java 长期支持 (LTS) 版本,其中包含有助于提高稳定性、安全性和性能的更新,开发人员经常将其视为升级 Java 版本的最重要因素之一。

Oracle 于 2023 年 9 月发布了 Java 21,这标志着 Java 的一个重要里程碑,对虚拟线程和升级库等预览功能进行了显着改进,并且语法方面也取得了进步,使 Java 与许多更现代的语言相媲美。

Java 17 的采用率远远超过了 Java 11 推出时开发者世界所看到的情况。到 2023 年,大约十分之一 (9%) 的应用程序在生产中使用 Java 17,而现在 35% 的应用程序正在使用 Java 17,一年内增长率接近 300%。Java 11 花了数年时间才达到接近这个水平。

2020年Java8 占有市场84%  2024年Java8只剩下28% 【是时候放弃Java8了】

Eclipse Adoptium 在 JDK 供应商中越来越受欢迎

2020 年,Oracle 是最受欢迎的 JDK 供应商,约占 Java 市场的 75%。在 JDK 11 发行版的许可受到更严格的限制之后(在 Java 17 恢复更加开放的立场之前),Oracle 二进制文件出现了明显的变化,并且我们看到了逐年稳步下降自那以后。虽然甲骨文在2022 年仍保持领先地位(34%),但到2023 年则下滑至 29% ,目前为 21%,一年内下降了 28%。

 Eclipse Adoptium,其采用率同比增长 50%,从 12% 上升至 18%。由于 Eclipse Adoptium 是社区管理的,因此该 JDK 的更新往往比 Oracle 和 Amazon JDK 更频繁。

是时候换JDK版本为Eclipse Adoptium

垃圾回收器

Java垃圾收集器(GC)是内存管理组件,用于防止内存泄漏、优化内存使用并确保Java应用程序的整体性能和稳定性。

自 Java 11 起,垃圾优先 (G1) GC 已成为默认设置。作为默认收集器可能可以解释为什么 43% 的客户正在使用它,以及为什么与 Java 7 和 8 相比,Java 11、17 和 21 的使用量大幅增加。此外,G1 的主要好处之一是它清除了较小的区域而不是一次性清除较大的区域,从而优化了收集过程。它也很少冻结执行,并且可以同时收集年轻一代和老一代,这使其成为开发人员的一个很好的默认设置。

第二个最受欢迎的 GC 是串行 GC (37%),它非常适合在单个处理器上运行的应用程序或系统,或者在同一台计算机上运行大量 Java 虚拟机 (JVM) 的情况。与更复杂的 GC 相比,它的 CPU 和内存开销也更低,因此适合资源受限的环境。

G1已经是垃圾回收的王者了!!!

计算和内存设置

在人们经常部署容器的云环境中,追求更小的运行规模非常有意义。但这种趋势可能会给某些应用带来意想不到的问题。特别是,当运行少于两个内核时,最新 JVM 上默认 G1 GC 的许多并发优势就会消失。所有这些单核实例也可能使用串行收集器,并为此付出性能成本。

JVM 内存设置时,32% 的 Java 应用程序使用 1 GB 或更少,68% 使用超过 1 GB。这相当于使用超过 1 GB 内存的应用程序同比增加了 15%。

Log4j 是最流行的 Java 应用程序日志框架

最常用的日志框架是 Log4j,76% 的 Java 应用程序使用它,其次是 JBoss Logging (61%) 和 Logback (52%)。

大多数 (83%) Java 开发人员依赖 SLF4j,这是一个充当其他类型 Java 日志记录框架抽象的框架。SLF4j 使软件开发人员能够使用他们选择的日志框架,并使应用程序能够互换地切换到任何 Java 日志框架,而不会影响其实现或进行任何更改。由于此功能,SLF4j 使应用程序独立于日志记录框架,为跨系统任何部分的日志记录提供更大的灵活性和可移植性。这也意味着 Java 应用程序可以使用多个日志框架。

Bouncy Castle 是最流行的 Java 应用程序加密库

Oracle 是 Java 应用程序中最流行的数据库系统

Oracle 数据库是使用最广泛的,第二个最受欢迎的数据库系统是 PostgreSQL,MySQL 排名第三。

 【注意】上面的图片表格均来自newrelic。

参考资料:http:// https://newrelic.com/resources/report/2024-state-of-the-java-ecosystem




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/597899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境下部署vsftp+mysql用户认证

安装mysql(不要使用红帽的RPM版的mysql) 使用编译或静态库安装mysql 1、编译安装pam_mysql 下载软件: http://downloads.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz?rhttp%3A%2F%2Fsourceforge.net%2Fprojects%2Fpam-mysql%2F…

数据结构_顺序表(动态)和链表(带头双向循环)的区别

✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 储存空间 我们知道顺序表的实质就是一个数组,数组的物理地址是连续的;而链表是由一个个的节点组成的,物理地址不一定连续、因为在malloc空间的时候不能保证&#xf…

JETBRAINS IDES 分享一个2099通用试用码!IDEA 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

【计算机科学速成课】笔记四

文章目录 19.内存&存储介质课程引出——内存与存储器的区别纸带存储磁芯存储磁带、磁鼓存储磁盘(硬盘)存储软盘存储光盘存储(CD&DVD)固态硬盘存储 20.文件系统课程引出——文件格式.txt文本文件.wav 音频文件.bmp位图文件…

Seal^_^【送书活动第3期】——《Hadoop大数据分析技术》

Seal^_^【送书活动第3期】——《Hadoop大数据分析技术》 一、参与方式二、作者荐语三、图书简介四、本期推荐图书4.1 前 言4.2 本书内容4.3 本书目的4.4 本书适合的读者4.5 配套源码、PPT课件等资源下载 五、目 录六、🛒 链接直达 Hadoop框架入门书,可当…

明星中药企业系列洞察(四)丨从超级单品到健康医药集团,云南白药如何打造自己的多元宇宙?

前不久,云南白药发布的2023年年报显示,报告期内,云南白药实现营业收入391.11亿元,同比增长7.19%,创同期历史新高。同时,公司计划每10股派发现金红利20.77元(含税),分红总…

17.Blender RC大佬EEVEE皮肤节点预设导入

如何添加节点预设 在底下的左下角打开Geometry Node Editor 选中正方体,点击新建 当鼠标指针在两个模块之间,是十字的样子时 可以拖出一个新的板块 然后打开文件浏览器 找到节点预设然后拖入到底下的节点编辑界面就可以了或者是blend文件&#xf…

Go Web 开发 Demo【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言(Gin)开发Web程序,前端太弱了,得好好补补课,完了再来更新。 1、环境准备 新建项目,生成 go.mod 文件: 出现报错:go: modules disabled by G…

vue cli 自定义项目架子,vue自定义项目架子,超详细

脚手架Vue CLI基本介绍: Vue CLI 是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 脚手架优点: 开箱即用,零配置内置babel等工具标准化的webpack配置 脚手架 VueCLI相关命令…

一种由RSOA和PIC集成的宽可调激光器

----翻译自Nouman Zia, Samu-Pekka Ojanen, Jukka Viheriala, Eero Koivusalo, Joonas Hilska, Heidi Tuorila, and Mircea Guina在optics letter上发的文章vol.48, Issue 5, pp. 1319-1322(2023) 摘要:通过光子集成方式实现的2-3μm波长的可调激光器,在…

如何选择最佳的机器学习分类模型?基于使用贝叶斯和异步连续减半算法(ASHA)优化的最佳分类模型自动选择方法

目录 一、主要内容: 二、贝叶斯优化算法: 三、异步连续减半优化算法: 四、代码运行效果: 五、代码下载: 一、主要内容: 对于分类问题,不同机器学习模型分类的效果不同,而且在同…

Azure AKS日志查询KQL表达式

背景需求 Azure(Global) AKS集群中,需要查询部署服务的历史日志,例如:我部署了服务A,但服务A的上一个版本Pod已经被杀掉由于版本的更新迭代,而我在命令行中只能看到当前版本的pod日志&#xff…

2024年最新 CKA 导航页

1. Dokcer 基础相关 Docker 、 Docker-Compose 安装教程Docker基础知识、相关概念以及基本使用命令Docker 一句话删除所有镜像/容器 2. CKA 相关学习 CKA(Certified Kubernetes Administrator)是由 Cloud Native Computing Foundation(CNC…

c#实现音乐的“vip播放功能”

文章目录 前言1. c#窗体2. 功能3. 具体实现3.1 添加文件3.2 音乐播放3.3 其他功能 4. 整体代码和窗口5. 依赖的第三方库 前言 最近在QQ音乐里重温周杰伦的歌,觉得好听到耳朵怀孕,兴起想要下载下来反复听,发现QQ音乐VIP歌曲下载下来的格式居然…

C++初阶之list的使用和模拟以及反向迭代器的模拟实现

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 一.list简介 list是一个带头双向链表,在数据结构的时候…

44 网络基础

本章重点 了解网络发展背景,对局域网/广域网的概念有基本认识 了解网络协议的意义,重点理解TCP/IP五层结构模型 学习网络传输的基本流程,理解封装和分用 目录 1.网络发展 2.协议 3.OSI七层模型 4.TCP/IP五层模型 5.网络传输流程图 6.网络中…

VMP 简单源码分析(.net)

虚拟机 获取CPU的型号 实现了一个指令集解释器,每个操作码对应一个特定的处理函数,用于执行相应的指令操作。在执行字节码时,解释器会根据操作码查找并调用相应的处理函数来执行指令。 截获异常 先由虚拟机处理 处理不了再抛出异常 priva…

开源投票系统源码及搭建 在线投票活动创建系统的设计与开发

在当今数字化时代,在线投票活动已成为各类组织、企业和个人不可或缺的一部分。无论是选举、问卷调查、产品评选还是其他需要收集公众意见的场景,一个高效、稳定且易于使用的在线投票系统都至关重要。 分享一款基于开源投票系统源码的在线投票活动创建系…

设计模式Java实现-建造者模式

楔子 小七在2019年的时候,就想写一个关于设计模式的专栏,但是最终却半途而废了。粗略一想,如果做完一件事要100分钟,小七用3分钟热情做的事,最少也能完成10件事情了。所以这一次,一定要把他做完&#xff0…

ICode国际青少年编程竞赛- Python-1级训练场-综合训练1

ICode国际青少年编程竞赛- Python-1级训练场-综合训练1 1、 Spaceship.turnLeft() for i in range(2):Spaceship.turnLeft()Spaceship.step(3) Dev.step(-1) Spaceship.step(4) Spaceship.turnLeft() Spaceship.step(3)2、 Spaceship.step() Spaceship.turnLeft() Spaceship.…