课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
编译器是程序员在学习java编程开发语言的时候会经常用到的一个工具类型,而今天我们就通过案例分析来简单了解一下,编译器的概念以及常用编译方法。
编译器是什么?
简而言之,编译器就是将编程语言作为一种输入,然后生产出一种可执行语言。大家都知道这个工具便是javac了,所有标准JDK都包含它。javac将Java代码作为输入,将其翻译为字节码(JVM可执行语言)。字节码存储在”.class”文件之中,当java程序启动时,这些文件将被载入到java运行时环境。
字节码不能直接被标准CPU读取,它需要被转译为指令语言,以便底层的执行平台能够解读。JVM中负责将字节码转译为可执行平台命令的组件是另外一个编译器。有些JVM编译器可以处理多个级别的转译,例如,有一个编译器,在字节码终被转译为实际执行机器的命令之前,可以创建不同级别的字节码中间表示形式。
字节码和JVM
就一个平台来说,从不可知观点看,我们希望尽可能的保持代码的平台独立化,以便于后一层的转译处理——从低级的表达到真正的机器代码——可以作为在具体某平台处理器构架上执行的有力控制点。高级别的层级划分应该是在静态与动态编译器之间。这样,我们就可以根据执行环境、期望的性能测试结果、有限的资源作出我们的选择。在Part1我已经简要的论述了静态和动态编译器。
静态编译vs动态编译
静态编译器的案例就是之前提到过的javac。通过静态编译器,输入的代码会被进行一次解析,输出的可执行格式文件在程序执行的时候会被使用。除非你改变源程序并且重新编译代码,不然之前所输出的代码的执行结果将不会被改变。因为此类输入是一种静态输入,并且编译器是静态编译器。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。