美文网首页
Java编译整理

Java编译整理

作者: young_xst | 来源:发表于2017-06-04 03:01 被阅读0次

    编译过程

      一般来说,一个程序从源代码到可执行文件是通过编译器完成的。简单的说,编译器就是把高级语言变成机器码,一个现代编译器的工作流程是:(源代码)——预处理——编译——汇编——(可执行文件)

    对于C#和Java这种运行在虚拟机上的语言,编译有所不同。对C,C++的程序,生成的可执行文件,可以在兼容的计算机上运行,但C#、Java这些语言不一样。他们的编译过程是相似的,但是最终生成的不是机器码,而是中间代码。对于Java而言,生成的是字节码。

    Java编译原理

      Java虚拟机(jvm)是可运行Java代码的假想计算机,只要根据jvm规格描述将解释器移植到计算机上,就能保证编译过后的任何Java代码能够在该系统上运行。

    运行jvm字节码是由解释器完成的。解释的执行过程分为三步:代码的装入、代码的校验、代码的执行。装入代码的工作由类装载器(class loader)完成。随后,装入的代码由字节码校检器校检,校检器可发现操作数栈溢出、非法数据类型转换等异常。通过校检后,代码便开始执行。

    字节码执行方式:

      1.即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

      2..解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。

    通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作。

    JVM规格描述

    JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提很好的灵活性,同时也确保Java代码可在符合该规范的任何系统上运行。JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Bytecode)的格式给出了明确的规格。这一规格包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储 映象。这些定义为JVM解释器开发人员提供了所需的信息和开发环境。Java的设计者希望给开发人员以随心所欲使用Java的自由。

    Java技术体系

      从广义上讲,Clojuro、JRuby、Groovy等运行与Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员。我们可以把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。

    相关文章

      网友评论

          本文标题:Java编译整理

          本文链接:https://www.haomeiwen.com/subject/yeqvfxtx.html