一、Java程序从源文件创建到程序运行要经过两大步骤:

1、.java源码文件由编译器编译成.class二进制字节码文件

2、字节码由java虚拟机(JVM)解释运行。    →  解释运行

因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言。 

 

 二、JAVA中的编译器和解释器:   

        Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。

编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行,这就是上面提到的Java的特点的编译与解释并存的解释。

Java源代码---->通过编译器---->jvm(Java虚拟机)可(理解)执行的Java字节码(即虚拟指令)---->给jvm---->jvm中解释器,进行解释----->翻译成机器可执行的二进制机器码---->程序运行。