Java中的编译器和解释器:
Java中引入了虚拟机的概念,就是在机器和编译程序(idea等)之间加入了一层抽象的虚拟机。这台虚拟机器在任何平台上都提供编译程序一个共同的接口,所以就算在window、linux下面同样都能运行。
编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来讲虚拟机代码(.class文件)转换为特定系统地机器码然后执行。所以在Java中,这种JVM虚拟机能够理解的代码就叫做字节码,这种虚拟机能够理解的代码叫做字节码(扩展名为.class的文件),他不面向任何特定的处理器,只面向虚拟机,JDK中就包含了JVM,所以要运行Java程序都需要配置JDK。
Java源代码--->编译器(idea等)--->JVM可执行的Java字节码(即虚拟指令)--->JVM--->JVM中解释器--->机器可执行的二进制机器码--->程序运行
采用字节码的好处:
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可以移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定机器,因此,Java程序无须重新编译便可以在多种不同的计算机上运行