java程序的运行机制详细分析

java程序的运行机制详细分析

ID:8875431

大小:66.04 KB

页数:4页

时间:2018-04-10

java程序的运行机制详细分析_第1页
java程序的运行机制详细分析_第2页
java程序的运行机制详细分析_第3页
java程序的运行机制详细分析_第4页
资源描述:

《java程序的运行机制详细分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、java程序的运行机制详细分析2010-05-1111:25JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。      Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。1.为什么要使用Java虚拟机      Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关

2、键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。Java运行机制Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。编译是指使用Java编译器对源文件进行错误

3、排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。这一过程如图1.1所示。字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统

4、平台上,它必须运行在被称为Java虚拟机的软件平台之上。Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。在运行Java程序时,首先会启动JVM,然后由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。这样利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对于特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级

5、的跨平台移植。JVM是Java平台无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。Java的这种运行机制可以通过图1.2说明。Java语言这种“一次编写,到处运行(writeonce,runanywhere)”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。需要注意的是,Java程序通过JVM可以达到跨平台特性,但JVM是不跨平台的。也就是说,不同操作系统之上的JVM是不同的,Windows平台之上的JVM不能用在Linux上面,反之亦然。示例:我

6、们可以通过helloworld来理解这几个缩写词的具体含义:publicclassHelloWorld{publicstaticvoidmain(String[]args){   System.out.println("helloworld");}}编译之后,我们得到了HelloWorld.class(图中的"Yourprogram'sclassfiles")在HelloWorld里面,我们调用了JAVAAPI中的java.lang.System这个类的静态成员对象out,out的静态方法:publicstaticvoidprintln(Stringstring);然后我们让虚拟机器来

7、执行这个HelloWorld。1.虚拟机会在classpath中找到HelloWorld.class。2.虚拟机中的解释器(interpret)会把HelloWorld.class解释成字节码。3.把解释后的字节码交由executionengin执行。4.executionengin会调用nativemethod(即平台相关的字节码)来在hostsystem的stdout(显示器)的指定部分打印出指定的字符串。5.这样,我们就看到"hellow

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。