你的 CPU 从不执行 Java,是 JVM 在运行时把它重写了
来源:dev.to — 2026-09-29
📋 概述
作者用两周时间读 OpenJDK 源码、翻 JVM 规范、跑字节码实验并故意把程序弄坏,写成本篇「打开引擎盖」的文章。起点是一个被大多数人忽略的问题:按下运行和屏幕上出现文字之间到底发生了什么。javac 并不会把你的代码直接编译成机器码,而是生成 .class 文件里的字节码——地球上没有任何物理计算机能直接执行它;真正干活的是 JVM,它是一台活在真实计算机里的虚拟计算机,读取并翻译字节码。这就是「一次编写,到处运行」的由来。文章继续拆解 JVM 内部三大组件:类加载器、运行时数据区与执行引擎。
🔑 核心要点
- 字节码是一条翻译链:Java 源码 → javac → 字节码 → JVM 解释/编译 → CPU 执行。
- 类加载器负责把 .class 找到并加载进内存,分加载、链接、初始化三个阶段。
- 让 Java 变快的不是解释器,而是JIT 编译器在运行时把热点方法编译成本地机器码。
- 两个基础结论:栈存引用、堆存对象;Java 永远是值传递,对象传递时复制的是引用。
💡 金句
你的代码不会直接变成机器码,它先变成一种地球上没有任何物理计算机能直接执行的指令。
👍 0
👎 0
← 返回 dev.to 首页