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

简单概述:我们通常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又做了什么事情?

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值