1. 什么是字节码(Bytecode)
字节码是介于源代码和机器码之间的中间代码。
以 Java 为例:
你写的
.java源代码 → 编译 → 生成.class文件这个
.class里存的就是 字节码
它不是给人看的,也不是直接给 CPU 执行的机器码,
而是给 JVM(Java 虚拟机) 执行的指令。
2. 采用字节码的好处(核心就 3 点)
① 一次编写,到处运行(跨平台)
C/C++ 编译后是机器码,Windows、Linux、macOS 互不兼容。
Java 编译成字节码,只要装了对应系统的 JVM,
同一份 .class 就能在任何系统跑。
→ 这就是 Java Write Once, Run Anywhere 的根源。
② 交给虚拟机优化,更智能、更安全
字节码由 JVM 执行,JVM 可以:
做即时编译(JIT):把热点字节码转成高效机器码,越跑越快
做内存管理、垃圾回收
做安全检查,防止恶意代码直接操作硬件
③ 解耦:语言和硬件无关
只要编译成标准字节码,
不只 Java,Kotlin、Scala、Groovy 都能跑在 JVM 上。
→ 虚拟机负责屏蔽底层系统差异。
一句话总结
字节码 = 虚拟机能看懂的中间指令
好处:跨平台、可优化、更安全、多语言兼容。