码迷,mamicode.com
首页 > 编程语言 > 详细

Java程序的运行机制和JVM

时间:2016-07-30 14:51:01      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

1. Java语言比较特殊, 由Java编写的程序需要经过编译步骤,但这个编译步骤不会产生特定平台的机器码,而是生成一种与平台无关字节码(也就是.class文件)。这种字节码不是可执行性的,必须使用Java解释器来解释执行。因此可以认为: Java语言既是编译型语言,也是解释型语言。 或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言。

Java程序的执行过程,必须经过先编译,后解释两个步骤。
 
2. Java语言里,负责解释执行字节码文件的是Java虚拟机,即JVM(Java Virtual Machine)。JVM是可以运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。在一些虚拟机的实现中,还会将虚拟机代码转换成特定系统的机器码执行,从而提高运行效率。
 
3. 当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体的平台。 只面向JVM。不同平台上的JVM都是不同的,但他们都提供了相同的接口。JVM是Java程序跨平台的关键部分。只要为不同的平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。显然,相同的字节码程序需要在不同的平台上运行,这几乎是“不可能的”, 只有通过中间的转换器才可以实现,JVM就是这转换器。
 
4. JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。
Oracle公司制定的Java虚拟机规范在技术上规定了JVM的统一标准,具体定义了如下细节:
    指令集
    寄存器
    类文件的格式
    栈
    垃圾回收堆
    存储区
Oracle公司制定的这些规范的目的是为了提供统一的标准,最终实现了Java程序的平台无关性。

Java程序的运行机制和JVM

标签:

原文地址:http://www.cnblogs.com/FocusIN/p/5720881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!