区别于 在C语言的编译中,由源代码经过预编译和编译后直接形成可执行文件。
如图,与另一种面向对象的C语言编译过程不同,在Java文件中会由Java编译器先生成一个字节码文件.class(并不是0101代码)后再进行装载校验,解释等功能。其中Java虚拟机就是实现跨平台的关键,Java虚拟机屏蔽了与具体操作系统相关的信息,使得Java程序只需生成字节码后就可以在多种平台不加修改的运行。
实际上这就是为什么C语言的可移植性不如Java,通过中间文件.class,它可以在一次编写多处运行,得到.class文件后就可以由这个中间文件把在Windows中写的Java程序在别的系统中对.class文件的装载校验等实现跨平台的移植