Java 虚拟机的发展历程是怎样的?

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: Java虚拟机(JVM)始于1991年Sun公司的“Green”项目,目标是创建一种跨平台的小型可靠语言。1995年,Java 1.0发布,JVM随之推出,支持面向对象编程。1998年的Java 1.2优化了内存管理和垃圾回收。1999年,HotSpot技术引入,提升了运行速度。2004至2014年间,Java 5-8进一步增强性能,支持Lambda表达式。2006年起,JVM开源并得到多家厂商的支持和优化。近年来,JVM不断适应云计算和容器化环境,发展更加高效智能。

早期起源(1990 年代初)
Java 虚拟机(JVM)的概念诞生于 Java 语言的早期开发阶段。1991 年,Sun Microsystems 公司开始了一个名为 “Green” 的项目,旨在开发一种能够在各种消费电子产品上运行的编程语言,这就是 Java 的前身。当时的目标是创建一种小型、可靠且与平台无关的语言,而 JVM 则是实现这种平台无关性的核心机制。
最初的 JVM 设计相对简单,主要专注于解释执行 Java 字节码,以确保 Java 程序能够在不同的硬件和操作系统环境下运行。
Java 1.0 - 1.2 时代(1995 - 1998 年)
1995 年,Java 1.0 发布,JVM 也随之正式亮相。这个时期的 JVM 在功能上不断完善,开始支持更多的 Java 语言特性,如面向对象编程的各种概念(类、对象、继承、多态等)。
在 Java 1.2(1998 年发布)中,JVM 的性能有了一定提升,并且在内存管理方面进行了优化。例如,对垃圾回收算法进行了改进,提高了内存回收的效率,使得 Java 程序在运行时能够更有效地利用内存资源。
HotSpot 技术的引入(1999 年)
1999 年,Sun Microsystems 公司推出了 HotSpot 技术并集成到 JVM 中。HotSpot JVM 采用了一种混合模式运行 Java 程序,它结合了字节码解释执行和即时编译(JIT)两种方式。
当程序启动时,HotSpot JVM 先以解释方式运行字节码,随着程序的运行,它会监控哪些代码片段被频繁执行,然后将这些频繁执行的字节码使用 JIT 编译成本地机器码。这种方式大大提高了 Java 程序的运行速度,使得 Java 在企业级应用和性能要求较高的场景中更具竞争力。
Java 5 - Java 8 时代(2004 - 2014 年)
在 Java 5(2004 年发布)中,JVM 的性能和功能得到了进一步的提升。例如,对垃圾回收算法进行了更多的改进,引入了诸如并发标记 - 清除(CMS)垃圾回收器等新的垃圾回收机制,以减少垃圾回收过程对程序运行的停顿影响。
Java 6(2006 年发布)继续优化 JVM 的性能,特别是在内存管理和多线程支持方面。
Java 7(2011 年发布)在 JVM 层面增加了一些新的特性,如对动态语言支持的改进等。
Java 8(2014 年发布)是一个重要的版本。JVM 在这个版本中支持了 Lambda 表达式等新的 Java 8 语言特性,并且在性能优化方面持续努力,例如对方法引用等新特性的高效执行进行了优化。
开源与多厂商支持(2006 年起)
2006 年,Sun Microsystems 公司将 Java 开源,这也包括了 JVM 的部分实现。开源使得更多的开发者和组织可以参与到 JVM 的开发和改进中来。
除了 Sun(后来被 Oracle 收购)之外,其他厂商也开始开发自己的 JVM 实现,如 IBM 的 J9 JVM 等。这些不同厂商的 JVM 在遵循 Java 规范的基础上,可能会针对不同的应用场景和需求进行优化,例如 IBM 的 J9 JVM 在企业级大型机环境下有出色的性能表现。
现代发展(2014 年至今)
随着云计算、大数据和容器技术的发展,JVM 也在不断适应新的需求。例如,在容器化环境中,JVM 需要更好地适应容器资源的限制,如内存和 CPU 的限制。
新的垃圾回收算法不断被研究和应用,以提高 Java 程序在不同场景下的性能和资源利用率。同时,JVM 也在朝着更高效、更智能、更适应新兴技术的方向发展。

目录
相关文章
|
Java
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
本文是博主学习JDK源码的记录,希望对大家有所帮助。
3110 0
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
如何使用阿里云 Billing API 实现资源包余量报警
使用Billing API获取资源包余量信息,自主实现资源包余量报警
844 2
|
3月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器2核2G和2核4G特价怎么选?轻量应用服务器抢购与云服务器长效特惠选购指南
2026年阿里云推出多款特价云服务器,包括2核2G与2核4G配置,价格覆盖38元至199元不等,满足从入门到企业级需求。2核2G有轻量应用服务器(38元/年,适合轻负载场景)和经济型ECS(99元/年,稳定长效);2核4G则分轻量型(灵活尝鲜,适合AI应用)与通用算力型u1实例(199元/年,企业级性能)。用户可根据业务需求、性能要求及预算选择适配规格。
|
3月前
|
人工智能 缓存
阿里云通用AI节省计划是什么?AI大模型优惠4.5折,开通百炼免费领Tokens词元7000万
阿里云AI通用节省计划是面向大模型按量付费的折扣方案,AI大模型权益申请:https://t.aliyun.com/U/0QpP7a 用户承诺月消费金额(如200元/年),即可享最高5.3折优惠。它不提供固定Token额度,而是自动抵扣符合条件的推理费用(含输入/输出Token、工具调用等),覆盖全部阿里直供模型,灵活高效,无需手动激活。开通百炼:https://t.aliyun.com/U/fPVHqY 免费领取Tokens
324 2
|
7月前
|
人工智能 API 数据库
从AI检索原理到geo优化:技术驱动的GEO监测策略
随着AI搜索兴起,信息获取从关键词匹配转向语义理解。本文深入解析GEO(生成式引擎优化)技术原理,对比SEO与GEO的核心差异,揭示RAG、向量化检索的底层逻辑,并介绍如何通过真实用户行为模拟实现精准监测,助力企业构建面向AI时代的内容优化体系。
1107 0
|
开发框架 前端开发 Java
【IntelliJ IDEA】idea 实用功能Auto Import:自动优化导包(自动删除、导入包)
【IntelliJ IDEA】idea 实用功能Auto Import:自动优化导包(自动删除、导入包)
2715 0
|
11月前
|
人工智能 JSON 供应链
揭秘电商 API 接口,让多平台库存实时更新不是梦
在电商多平台销售中,库存同步是关键难题。本文解析电商 API 接口如何实现库存实时更新,提升效率、减少超卖,保障客户体验与品牌信誉。
|
12月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
IDE 程序员 开发工具
只用正版!教你5个方法,白嫖JetBrains家族的所有产品,包含:IntelliJ IDEA、PyCharm、WebStorm、CLion、Rider
程序员晚枫分享了5种官方认证的免费使用JetBrains家族产品的方法,包括内容创作者计划、开源项目支持、教育许可证、用户组支持和开发者认可计划。这些方法帮助个人开发者与小型团队合法获取强大开发工具,如IntelliJ IDEA、PyCharm等,降低开发成本,提升效率。同时提醒大家遵守使用规范,尊重知识产权。
2825 13
|
Java 编译器 关系型数据库
深入理解 Java 中的 final 关键字
final 是 Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么? final 关键字是什么? final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。
5038 0