Java程序的编译执行过程
Java程序首先会由编译器编译成字节码文件(.class文件),然后字节码文件经过Java虚拟机解释成各平台可以执行的二进制机器码文件。这样看来,Java程序经过了编译和解释执行这两个过程,所以说他是半编译半解释型语言。
我们再来理解一下这个过程中JVM即Java虚拟机的作用。在这个过程中,各个平台的JVM将相同的字节码文件解释成对应平台可以执行的二进制机器码文件,这样就实现了Java的跨平台运行。
如果这样还不好理解,那么我们可以举一个简单的例子,假如有两只笔头不同的笔,两个相同的笔套,那么怎么样把这个两个相同的笔套同时套在这只笔上?
我们可以借助一个转换器,转换器的一头有两种形状,可以匹配这两支笔的两种笔头,然后转换器的另一头是相同的形状,可以匹配这种笔套。
在Java程序的编译运行过程中,我们可以把JVM理解成那个转换器,JVM可以把经过编译的字节码文件解释成各个平台对应的二进制可执行机器码文件,这样就实现了一次编译,多次运行的效果。