Java追求一次编译,处处运行,那Java是怎么做到的?
这需要我们从一段Java程序的运行流程来说起,流程如下:
Java源文件(.java文件)--->编译为字节码文件(.class文件)--->JVM
我们实际运行的就是.class文件,注意,这个文件并不是直接在具体的操作系统上运行,而是运行在JVM(java虚拟机)上,JVM就是实现Java跨平台的关键。
你可以认为,JVM相当一个翻译,任务就是将字节码翻译成具体的操作系统执行指令,同时注意,JVM本身并不跨平台,不同的操作系统具备不同的JVM。