Java 17 采用率增长 430%

简介: 1995年,Sun Microsystems发布Java语言,推动现代多媒体应用发展。凭借“一次编写,到处运行”的优势,Java迅速成为主流编程语言。New Relic最新发布的《2023年Java生态系统现状》报告显示,Java 11以超56%的使用率稳居榜首,Java 8仍占近33%。尽管Oracle每半年更新一次Java版本,但开发者更倾向使用长期支持(LTS)版本。Java 17的采用率在过去一年增长430%,潜力巨大。此外,Amazon已成为最受欢迎的JDK供应商,市场份额达31%。容器化应用也已成为主流,70%的Java应用来自容器。

1995 年,Sun Microsystem 公司发布了 Java 程序设计语言,为开发现代多媒体应用程序提供了一种更加可移植和交互的方式。从那时起,Java 便成为主流的编程语言之一,被应用于各行各业,也有着“一次编写,到处运行”的优势特性。

近日,为揭晓 Java 生态系统的最新发展状况,分析公司 New Relic 在调研了新版本、容器应用、垃圾回收等特性之后,最新发布了《2023 年 Java 生态系统现状》报告。

在本文中,我们将与大家共同深入了解这门被广泛应用的编程语言。

Java 17 的采用率在一年内增长了 430%

众所周知,Java 版本分为长期支持(LTS www.kymt168.com)和短期支持支持版本。一般长期支持的版本都比较稳定,或者官方会不断更新补丁包。短期支持版本只是作为过渡版存在。

自 2017 年 Oracle 将 Java 版本的更新频率更改为六个月一次时,长期支持 LTS 版本大概 2-3 年更新一次。不过,这种高频的更新率让无数网友怨声载道,学不动的声音不绝于耳,以至于很多人呈现出“你更任你更,我不用”的“摆烂”状态。

这不,Oracle 在今年 3 月最新发布了 Java 20 版本。不过,据最新数据报告显示,Java 11 已连续两年位居榜首,成为开发者最常用的 Java 版本。

当下,超过 56% 的应用程序在生产中使用 Java 11,这一比例要高于 2022 年的 48% 和 2020 年的 11%。

Java 8 的使用率紧随其后,近 33% 的应用程序在生产中使用它(低于 2022 年的 46%)。

虽然 Java 11 稳居第一,但是最新的 LTS 版本 Java 17 的采用率逐年攀升,从去年不到 1% 的比例,迅速增长至今年的超过 9% 的占比。研究报告显示,Java 17 在过去一年内增长率为 430%,而彼时 Java 11 花了数年时间才达到那个水平。

相较之下,只有 0.28% 的应用程序仍在生产中使用 Java 7。这并非没有根由,究其原因,是因为官方对 Java 7 的支持已于 2022 年结束。大多数使用 Java 7 的应用程序都是尚未升级的遗留应用程序。

与 LTS 版本相比,短期的非 LTS Java 版本的使用率仍然极低,只有 1.6% 的应用程序使用非 LTS Java 版本(低于 2022 年的 2.7%)。

根据报告调研发现,可能导致影响非 LTS 版本使用率下降的一些因素包括:

  • 缺乏支持
  • 缺乏吸引力的新功能
  • 距离下一个 LTS 版本发布的时间太短

曾几何时,Java 8 发布了之后,外界并不能知晓下一个 LTS 版本 Java 11 会什么时候发布。不过,后来 ,Oracle 明确做出承诺:六个月一次更新,自此大家都有了清晰的认知,自然宁愿等等下一个 LTS 版本,也不愿在生产环境使用不稳定的非 LTS 版本。

数据显示,在使用的非 LTS Java 版本中,Java 14 仍然是最受欢迎的,占比0.57%(低于 2022 年的 0.95%),Java 15 紧随其后(0.44%,低于 2022 年的 0.70%)。

亚马逊现在是最受欢迎的 JDK 供应商

近年来,使用的 Java Developer Kit (JDK www.xqt-shop.com) 发行版的源代码发生了变化。过去,很多开发人员常常从 Oracle 获得他们的 JDK,但是 Oracle JDK 后来针对商业应用采取收费政策,这也让很多人望而却步,好在 OpenJDK 项目日渐丰富,成为众人的选择。

调查数据显示,2020 年,Oracle 是最受欢迎的 JDK 供应商,约占 Java 市场的 75%。在其 JDK 11 发行版的许可更严格之后(在 Java 17 回归更开放的立场之前),业界开发者开始逐渐远离 Oracle。虽然 Oracle 在 2022 年以 34% 的份额保持榜首,但在 2023 年下滑至 28%。

与之形成鲜明对比的是,Amazon 的使用率急剧上升至 31% 的市场份额(从2020 年的 2.18% 和 2022 年的 22%),使其成为最受欢迎的 JDK 供应商。

容器化应用程序已成为主流,据 New Relic 调研显示,70% 的 Java 应用来自容器。

容器会影响工程团队分配计算和内存资源的方式。例如,New Relic 数据显示,在容器中运行的应用程序少于 4core 的比例要高得多。

工程团队正在摆脱容器中的单核设置,只有 36% 在使用(低于 2022 年的 42%),并转向多核设置,超过 29% 使用 8core 设置(高于 2022 年的 20%)。

工程团队通常在他们经常部署容器的云环境中使用较小的计算设置。但是,这种趋势可能会给某些应用程序带来意想不到的问题,这可能会导致配置减少。例如,如果团队只使用一个 CPU,他们可能得不到他们期望的垃圾收集器——即使他们明确地设置了它。

自动垃圾收集是查看堆内存、识别哪些对象正在使用、哪些未使用以及删除未使用对象的过程。 鉴于其在 JVM 性能中的核心作用,垃圾回收仍然是 Java 社区中的热门话题。

New Relic 数据显示,Garbage-First (G1) 垃圾收集器仍然是使用 Java 11 或更高版本的用户的最爱,65% 的客户使用它。G1 的主要好处之一是,它清除较小的区域而不是一次性清除大区域,从而优化了收集过程。它还很少冻结执行并且可以同时收集年轻代和老年代,这使它成为工程师的一个很好的默认设置。

其他在 Java 8 之后出现的实验性垃圾收集器(ZGC 和 Shenandoah)在生产系统中的使用仍然很少。两者都有生产就绪版本,但在一般处理中仍然可以忽略不计。

相关文章
|
前端开发 Java 应用服务中间件
Gateway网关使用不规范,同事加班泪两行~
Gateway网关使用不规范,同事加班泪两行~
Gateway网关使用不规范,同事加班泪两行~
|
安全 Java 编译器
阿里巴巴Dragonwell
阿里巴巴Dragonwell
|
存储 人工智能 边缘计算
当 AI 进入「算力密集时代」:你的服务器能跑通大模型吗?
本文深入探讨AI服务器在技术落地中的核心瓶颈问题,结合实战经验解析从模型训练到端侧部署的算力优化策略。内容涵盖三大典型场景的算力需求差异、GPU服务器选型的五大反直觉真相、实战优化方法(如混合精度训练与硬件资源监控),以及边缘AI部署挑战和解决方案。同时提供算力弹性扩展策略、模型生命周期管理及合规性建议,帮助读者构建可持续发展的算力体系。文末附有获取更多资源的指引。
1361 17
|
7月前
|
安全 Java API
Spring Boot 4 升级实战:从3.x到4.0的分步升级保姆级指南
Spring Boot 4.0于2025年11月发布,基于Spring Framework 7.0,实现模块化(47个轻量自动配置)、JSpecify空安全校验、原生API版本控制等重大升级。镜像减19%、启动快33%,迁移平滑,3.5.x支持至2026年11月。(239字)
6265 1
|
算法 数据挖掘
【北京大学 软件工程】五、结构化设计方法-1
结构化设计是软件开发中的重要环节,旨在根据需求规约构建系统的软件模型。其主要目标是在抽象层面上建立系统架构(包括数据和程序结构),并详细描述处理算法,最终形成设计规格说明书。结构化设计分为总体设计和详细设计两部分:总体设计确定系统的模块结构及模块间的调用关系;详细设计则深入描述各模块的具体实现。 设计方法需提供体现原理的术语、表达软件模型的工具及过程指导。总体设计引入了“模块”与“调用”两个核心概念,并使用模块结构图(MSD)来表达静态结构。设计步骤包括将DFD(数据流图)转化为MSD,区分变换型和事务型数据流图,通过自顶向下的方式逐步细化模块,确保高内聚低耦合。
1347 1
【北京大学 软件工程】五、结构化设计方法-1
|
12月前
|
Oracle Java 关系型数据库
SpringBoot从0-1集成Graalvm
本文介绍如何使用GraalVM将SpringBoot应用打包为原生可执行文件并构建Docker镜像。相比传统JAR包,原生镜像启动更快、体积更小,提升部署效率,适合现代云原生环境。
1265 10
|
开发框架 前端开发 网络协议
Spring Boot结合Netty和WebSocket,实现后台向前端实时推送信息
【10月更文挑战第18天】 在现代互联网应用中,实时通信变得越来越重要。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为客户端和服务器之间的实时数据传输提供了一种高效的解决方案。Netty作为一个高性能、事件驱动的NIO框架,它基于Java NIO实现了异步和事件驱动的网络应用程序。Spring Boot是一个基于Spring框架的微服务开发框架,它提供了许多开箱即用的功能和简化配置的机制。本文将详细介绍如何使用Spring Boot集成Netty和WebSocket,实现后台向前端推送信息的功能。
3986 1
|
数据可视化 数据挖掘 数据处理
B 端试用期考核指标
B端产品经理试用期考核指标涵盖了项目策划、用户需求理解、团队协作、技术能力、创新思维、项目管理、产品投放时间、产品质量、产品利润及基础服务接入等方面。这些指标通过自我评估和上级评估相结合的方式进行,分为优秀(5分)到不合格(1分)五个等级。具体内容包括制定合理项目计划、准确把握用户需求、有效沟通协调团队、掌握技术细节、提出创新方案等。实际案例展示了如何通过成功项目实施、解决业务痛点、优化产品功能等方式,全面评估产品经理的综合能力,确保其胜任后续工作任务。
850 0
|
算法 Oracle Java
一文详解|从JDK8飞升到JDK17,再到未来的JDK21
本文深入浅出地解析了从JDK8到JDK17版本升级的新特性,并展望后续将会更新的JDK21.
12933 8