JAVA 运行原理

      使用JAVA进行编程,首先会将原程序进行编译,将JAVA编译成字节码(.class文件内容),【默认路径为该JRE运行环境路径下】,然后由JAVA虚拟机(JVM)解释形成可执行文件。因此JAVA既是编译型语言,也是解释性语言。


 跨平台

    一次编写,处处运行。(Wrtie once,run everywhere)

话说,在北京,一般都是讲北京话的,上海,一般都是将上海话,广东,广东话...
现有一公文发出,要全国执行,该当如何?——先统一翻译成普通话。各地在将普通话版本翻译成当地的方言。
这里,北京、上海就是不同类型的机器windows,linux...
编译(javac)就是将公文翻译成普通话的过程,而编译出的.class文件,就是公文的普通话版本。
在执行的时候,各地的翻译就是jvm,负责将.class转换成本地能够理解的方言来执行。

      在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。

     JVM进行层层的差异屏蔽,以及向上提供一致性接口,实现了字节码的跨平台。