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

一个java文件经过什么流程转换成.class文件--javac(献给初学者)

2013-11-19 20:44 375 查看
简单概述:我们通常code,文件的结尾都是.java文件,通过IDE等工具就可以看到效果,但是具体是怎么搞成的呢?好吧 我们不是讨论IDE,是javac! 我们都知道 jar里面的东西都是我们写的java文件编译后产物,编译?对,就是编译,那什么才能编译呢?那就是javac,它的另外一个名称就是:编译器

什么是javac? javac是一种编译器,能将一种语言规范转换成另外一种语言规范。换句话就说把我们比较了解和懂得如何编写的一种语言转换成计算机能够识别的语言,这句话我想应该没有什么异议吧,我们的代码最终都是要在计算机上运行的,也就是计算机能够识别的指令,但是我们编写肯定不会手动把一些二进制按照计算机的规范组合成这些指令,这就需要这个很牛的东西,编译器!

内部步骤:首先读取源码,一个一个字节的读取进来,找出来我们Java定义的关键字,比如if ,else,for,while,finally,等这个步骤就是叫做词法分析过程

    第二步:检查第一步读取出来的关键字是否符合Java语言规范,比如if后面跟的是不是一个Boolean类型的表达式,这个过程就叫做语法分析

    第三步:经过以上2个步骤词法分析,语法分析,基本上已经按照Java规范了,接下来就是这些拼装的代码要表达什么意思,也就是语义分析

    以上几步算是准备工作吧,经过以上3步没有问题的代码,要进行最后一相,代码生成器,把这个符合Java语言规范的源代码转换成符合Java虚拟机规范的字节码了

简单的分析,下篇讲解经过javac编译后的字节码给了jvm,jvm又做了什么事情?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐