Java JVM 零基础入门
2026/6/9 21:54:16 网站建设 项目流程

一、到底什么是 JVM?一句话讲透

JVM 全称 Java 虚拟机,简单理解:一台专门用来运行 Java 程序的虚拟电脑

我们写的 Java 代码,电脑本身是看不懂的,真正执行代码的不是操作系统,而是 JVM。

同时它也是 Java跨平台的核心:

  • Windows 有 Windows 版 JVM

  • Linux 有 Linux 版 JVM

  • Mac 有 Mac 版 JVM

代码只需要写一次,编译成统一的.class字节码文件,就能在任意装有 JVM 的系统上运行。

一次编写,到处运行,靠的就是 JVM。


二、JVM 整体架构:三大核心模块(全局框架)

整个 JVM 内部结构非常规整,宏观上就分为三大模块

Java 程序从启动、加载、运行、内存分配、垃圾回收,全部都在这三大模块中完成。

完整运行链路记住一句话:类加载子系统 → 运行时数据区(内存) → 执行引擎

下面逐个通俗讲解,只讲作用,不讲细节。


2.1 类加载子系统:程序的“搬运工”

我们写的 Java 代码,编译后会生成.class字节码文件,存放在硬盘上。

硬盘上的文件无法直接运行,必须加载到内存。

类加载子系统的唯一作用:把硬盘的 class 文件,安全搬运、加载到 JVM 内存中。

它会简单做三件事:

  1. 加载:读取 class 文件进内存

  2. 校验:检查文件格式是否合法、安全

  3. 初始化:给类的静态变量、默认数据完成初始化

你不用记双亲委派、不用记加载细节,入门只需要知道:所有代码想运行,必须先经过类加载器加载。


2.2 运行时数据区:JVM 的“内存仓库”

这是 JVM 最核心的区域,也是大家口中常说的JVM 内存模型

可以通俗理解为:JVM 专门划分出来的几块独立内存空间,用来存放代码、对象、变量、线程信息

总共分为 5 个区域,我只讲各自用途,不深挖底层:

1. 程序计数器

记录当前线程代码执行到第几行,线程私有,空间极小,不会内存溢出。

2. 虚拟机栈

每个线程独占一份,存放方法执行信息、局部变量。方法调用、入栈出栈都在这里。

栈深度过大会报栈溢出错误StackOverflowError

3. 本地方法栈

专门给 Java 调用系统底层native本地方法使用,日常开发几乎感知不到。

4. 堆内存(最重要)

整个 JVM 最核心的区域

所有new 出来的对象、数组全部存在堆里,全局线程共享。

我们常说的GC 垃圾回收,主要回收的就是堆内存。

5. 方法区(JDK8+ 元空间)

存放类结构信息、静态变量、常量、方法元数据等全局固定信息。

JDK8 之后彻底废弃永久代,使用元空间 Metaspace


2.3 执行引擎:真正干活的“执行者”

代码加载进内存之后,谁来运行?答案就是:执行引擎

它是 JVM 的“CPU”,负责真正执行字节码,主要包含三部分能力:

1. 解释器

逐行解释执行字节码,启动快,适合短时执行代码。

2. JIT 即时编译器

针对频繁执行的热点代码,编译成机器码缓存,大幅提速,是 Java 越跑越快的核心。

3. GC 垃圾回收器

自动清理堆内存中无效、不再使用的对象,释放内存,防止程序内存溢出。


三、全局串联:一段代码的完整运行流程

我帮大家把整个 JVM 流程完整串起来,看完彻底通透:

  1. 我们写的.java源代码,编译为.class字节码文件

  2. 类加载子系统将 class 文件加载进 JVM 内存

  3. 数据、对象、方法信息,分别存入运行时数据区的各个内存区域

  4. 执行引擎解释/编译字节码,执行程序逻辑

  5. 程序运行中,GC 自动清理无效对象,回收内存

  6. 程序结束,JVM 释放所有资源

加载 → 存内存 → 执行 → 自动回收,这就是 JVM 的全部工作。


四、新手必背:JVM 核心框架总结(极简版)

不用记复杂知识点,入门只需要记住这 5 句话:

  1. JVM 是 Java 专属虚拟机,是 Java 跨平台的核心

  2. 类加载子系统:负责把代码加载进内存

  3. 运行时数据区:JVM 所有内存的分配区域,对象存在堆里

  4. 执行引擎:负责跑代码、热点提速、垃圾回收

  5. GC 主要作用于堆内存,自动帮我们释放无用内存


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询