我们用 C语言与Java 运行的过程做一个简单的对比
C语言将 .cpp .h .c 经过 编译,链接 生成 .exe 文件
.exe 是可执行文件,里面装的是能被操作系统直接识别的机器指令(机器码 Machine Code)
但编译出来的文件不能跨平台,在什么系统编译的就只能在编译的那个系统执行。
Java语言将 .java 文件经过 编译 生成半成品 .class 文件
.class 文件里面装着的是 字节码(Byte Code)
但是 .class 是不能直接被操作系统执行的,那么最重要的 JVM 出现了
JVM充当了一个"翻译官"的角色,有了JVM后我们同一份.class就可以运行在不同的操作系统上,这就是Java能够跨平台运行的原理。
Java跨平台原理:
java源文件经过编译之后,生成字节码文件,因为有JVM的存在,可以把字节码文件在各个不同的平台中进行解释执行