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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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 JVM:深入了解虚拟机的工作原理与优化
Java 虚拟机(JVM)是 Java 语言的核心组成部分,它在代码编译和运行过程中发挥着重要作用。理解 JVM 的工作原理和优化策略对于开发高效、稳定的 Java 应用至关重要。本文将深入探讨 JVM 的工作原理、主要组成部分和性能优化策略,帮助您更好地理解 JVM 在 Java 开发中的关键地位。
|
存储 安全 Java
《Java 虚拟机》 基本概念与内存结构
《Java 虚拟机》 基本概念与内存结构
26260 0
《Java 虚拟机》 基本概念与内存结构
|
存储 自然语言处理 算法
Java 虚拟机详解
Java 虚拟机详解
Java 虚拟机详解
|
监控 安全 Java
《Java 虚拟机》运行期优化
《Java 虚拟机》运行期优化
106 0
|
存储 XML 开发框架
【虚拟机】走进Java、自动内存管理
【虚拟机】走进Java、自动内存管理
162 0
【虚拟机】走进Java、自动内存管理
|
算法 Java 开发者
Java—虚拟机
Java—虚拟机
85 0
|
存储 算法 安全
基于 Hostpot 虚拟机的 Java 对象揭秘(上)
基于 Hostpot 虚拟机的 Java 对象揭秘
351 0
基于 Hostpot 虚拟机的 Java 对象揭秘(上)
|
存储 Java Maven
基于 Hostpot 虚拟机的 Java 对象揭秘(下)
基于 Hostpot 虚拟机的 Java 对象揭秘
406 0
基于 Hostpot 虚拟机的 Java 对象揭秘(下)
|
监控 前端开发 安全
什么是Java的灵魂?了解JVM的结构模型,生命周期,Java王朝虚拟机的更替,各家大厂虚拟机百花齐放
什么是Java的灵魂?了解JVM的结构模型,生命周期,Java王朝虚拟机的更替,各家大厂虚拟机百花齐放
什么是Java的灵魂?了解JVM的结构模型,生命周期,Java王朝虚拟机的更替,各家大厂虚拟机百花齐放
|
Java Linux C++
【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存
【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存
413 0
【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存