初识JVM虚拟机
1. Java虚拟机简介
JVM全称是Java Virtual Machine,中文译名Java虚拟机。JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 
2. JVM的功能
2.1 解释和运行
对字节码文件中的指令,实时的解释成机器码,让计算机执行。
2.2 内存管理
自动为对象、方法等分配内存; 自动的垃圾回收机制,回收不再使用的对象
2.3 即时编译
对热点代码进行优化,提升执行效率
提示
Java即时编译是为了支持跨平台特性,JVM提供了即时编译(Just-In-Time 简称JIT)进行性能的优化,最终能达到接近C、C++语言的运行性能。
3. 常见的JVM
3.1 HotSpot
使用最广泛,稳定可靠,社区活跃, JIT支持, OracleJDK和OpenJDK默认虚拟机
3.2 GraalVM
多语言支持, 高性能、JIT、AOT支持
3.3 龙井
Dragonwell JDK中的内置虚拟机,高性能、bug修复、安全性提升JWarmup、ElasticHeap、Wisp特性支持
3.4 Eclipse OpenJ9
高性能、可扩展, JIT、AOT特性支持
4. JVM的组成
JVM包括类加载器,运行时数据区,执行引擎(即时编译器、解释器、垃圾回收器等),本地方法接口 
5. Java发展历程
2000年,JDK 1.3发布,Java HotSpot Virtual Machine正式发布,成为Java的默认虚拟机。
2002年,JDK 1.4发布,古老的Classic虚拟机退出历史舞台。
2003年年底,Java平台的Scala正式发布,同年Groovy也加入了Java阵营。
2006年,JDK 6发布。同年Java开源并建立了OpenJDK。顺理成章,Hotspot虚拟机也成为了OpenJDK中的默认虚拟机。
2007年,Java平台迎来了新伙伴Clojure。
2008 年,Oracle收购了BEA,得到了JRockit虚拟机。
2009年,Twitter宣布把后台大部分程序从Ruby迁移到Scala,这是Java平台的又一次大规模应用。
2010年,Oracle收购了Sun,获得Java商标和最具价值的HotSpot虚拟机。此时Oracle拥有市场占用率最高的两款虚拟机HotSpot和JRockit,并计划在未来对它们进行整合;
2011年,JDK7发布。在JDK 1.7u4中,正式启用了新的垃圾回收器G1。
2017年,JDK9发布。将G1设置为默认GC,替代CMS (被标记为Deprecated), 同年IBM的J9开源,形成了现在的Open J9社区
2018年,Android的Java侵权案判决,Google赔偿Oracle计88亿美元。同年JDK11发布,LTS版本的JDK,发布革命性的ZGC,调整JDK授权许可
2019年,JDK 12发布,加入RedHat领导开发的Shenandoah GC
2020年,JDK 14发布,CMS垃圾回收器被移除;同年JDK 15发布,正式支持文本块、ZGC、Shenandoah特性,偏向锁被废弃。AdoptOpenJDK项目更名为Eclipse Adoptium(Temurin)。
2021年,JDK 16发布,正式支持Records和instanceof模式匹配特性,同年JDK 17(LTS)发布,密封类转正,增强伪随机数生成器,支持macOS M系列芯片,移除RMI激活。微软发布了Microsoft OpenJDK,Spring6.0宣布最低要求提升至Java 17。
2022年,JDK 18发布,默认采用UTF-8,并提供简易Web服务器;同年JDK 19发布。
2023年,JDK 20发布,同年JDK 21发布,成为新LTS版本,虚拟线程、分代ZGC,Record模式和switch模式匹配正式可用。
2024年,JDK 22发布,正式支持外部函数与内存API、未命名变量和模式;同年JDK 23发布,分代ZGC成为默认垃圾回收器。
2025年,JDK 24和JDK 25(LTS)发布,正式提供结构化并发功能特性,2025年1月,JavaOne大会时隔多年重新召开。
2026年,3月发布JDK 26,JDK 27预计于9月发布;在AI浪潮下,Java凭借Spring AI 2.0和LangChain4j等生态,稳稳占据了企业级AI应用开发的核心位置。
