您的位置:首页 > 编程语言 > Java开发

Java学习笔记(一)——Java程序的运行机制

2014-07-02 01:31 316 查看
要学习Java程序的运行机制,首先了解一下高级语言的运行机制。在高级语言中按照程序的执行方式大致分为编译型、解释型和伪编译型语言。那么什么是编译型、解释型和伪编译型呢?下面做一下简要介绍。

首先,编译型语言是指使用专门的编译器,针对某种特定的平台,一次性的将高级语言“翻译”成该平台硬件所能执行的机器码,然后包装成该平台所能识别的可执行性的程序的格式,这个过程叫做编译。因为编译生成的是针对特定平台的机器码,所以平台的可移植性较差。典型的语言如C/C++/FORTRAN/Pascal。

解释型语言是指通过特定的解释器将源码逐行解释成特定平台的机器码并且能立即执行的语言。每次执行的时候都需要解释器执行,因此执行效率较低,必须依赖解释器才行,因此只要平台提供相应解释器就可以解释执行,也就是说跨平台较好。典型的语言有Ruby/Python。

此外,还有一种伪编译语言,如Visual Basic,为了能过达到运行,需要先被编译成P-代码,并将解释引擎封装在可执行性程序内,在程序执行时,P-代码先被执行成二进制代码。表面上VB可以生产EXE文件,在特定的平台上运行,很像编译型语言。实际上可执行程序上带有自启动代码,也会有链接解释代码,而这部分代码负责启动VB解释程序,在对其进行解释并执行。

在了解完高级语言的几种类型后,我们来谈谈Java应该属于哪种类型?出奇的是Java不属于上面的任何一种类型,更确切的说是应该属于上面前两种语言的混合体,因为Java语言既有解释型特征,又有编译型特征,因为Java程序的执行需经过先解释后编译的过程。

Java语言的编写需要经过编译步骤,但不是生成特定平台的机器码,而是生成一种与平台无关的字节码(*.class文件),必须经过Java解释器解释才能生成可执行。执行的步骤如下:

而Java语言负责执行解释字节码的是Java虚拟机(即JVM),JVM是能执行字节码的文件的虚拟计算机。所有平台上都提供面向编译器的相同编程接口,而编译器只需要面型JVM,生成的字节码文件,然后由虚拟机执行,因此只要平台上提供相应的JVM,便可执行Java生成的字节码,因此,Java是一个跨平台的语言。

另外,理一下JVM和JRE的关系。JRE,Java运行时环境。简单的说,JRE包含JVM,JVM是运行Java程序的核心虚拟机,而运行Java不仅需要JVM还需要其他的类加载库,字节码校验器,以及大量的基础类库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: