一次编译,到处执行

1.编译过程:我们通过IDE写出来的后缀为.java文件,通过JAVA编译器编译为.class文件(字节码)
2.编译字节码文件:把后缀为.class的字节码文件编译为目标机器代码,执行是由JVM引擎来完成,也就是JAVA的第二次编译。
3.到处执行:JAVA提供了各种不同平台上的虚拟机制,所以也就可以实现“到处”,即JVM for windows或者JVM for unix等
20sd
总结:在由字节码编译为机器语言的时候,真正采用的是“解释”机制,也就是翻译一句,执行一句,不产生真个机器代码的程序,翻译过程如果不出现错误,就一直进行到完毕,否则将在错误处停止执行,但是同一个程序,如果是解释执行的,那么它的运行速度同城比编译为可执行的机器代码的运行速度慢一些。但是,对于JAVA来说,差别并不大,因为JAVA的字节码经过仔细设计,使用的是JIT即时编译方式,编译技术将字节码直接转化为高性能的本地机器码,JIT也就是JVM的一部分,JAVA运行系统在提供JIT的同时仍具有平台独立性,所以“高效而且跨平台”对JAVA来说是兼得的。如果Java程序是“汉语”,那么其字节码就是“国际语言”,只要运行的国际(平台,windows,linux)提供“翻译”,他们就可以把“世界语言”翻译为本地语言。