8088单板机设计调试经验总结
2026/5/27 15:15:13
要理解 Java “既有编译执行又有解释执行”,核心是拆解Java 程序的执行流程—— 它并非单一的编译或解释模式,而是分阶段结合了两种执行方式,最终实现 “一次编写,到处运行” 的跨平台特性。
| 特性 | 编译执行 | 解释执行 |
|---|---|---|
| 核心逻辑 | 先将源码一次性编译为机器码,再执行 | 逐行翻译源码(或中间码)为机器码,边译边执行 |
| 执行效率 | 前期编译耗时,运行时效率高 | 前期无编译耗时,运行时逐行解释效率低 |
| 跨平台性 | 编译结果与平台强绑定(如 exe) | 解释器跨平台,源码 / 中间码可通用 |
Java 程序的执行分为编译期和运行期两个阶段,分别对应编译执行和解释执行(现代 JVM 还引入 JIT 编译优化,是进阶补充)。
这一步由javac编译器完成,属于编译执行,但并非直接编译为操作系统能识别的机器码,而是编译为Java 字节码(ByteCode)(.class 文件)。
javac HelloWorld.java→ 生成HelloWorld.class(字节码文件,平台无关)。这一步由 JVM(Java 虚拟机)完成,是 Java “解释执行” 的核心阶段,现代 JVM 会结合解释执行和JIT 即时编译优化:
基础:解释执行JVM 的解释器(如 HotSpot 的解释器)会逐行读取.class 字节码,将其翻译为当前操作系统 / CPU 能识别的机器码,然后执行。
优化:JIT 即时编译(弥补解释执行的低效)为了解决解释执行的性能问题,现代 JVM(如 HotSpot)引入了 JIT(Just-In-Time)编译器:
javac把.java 源码编译为平台无关的.class 字节码(编译执行,提前做语法检查,生成中间码);可以把 Java 程序执行比作 “写一本书 + 不同语言的人阅读”:
jaotc工具)。综上,Java 的 “编译 + 解释” 本质是用编译生成跨平台字节码,用解释 + JIT 平衡跨平台性和执行效率。