javac编译器的知识点

javac是什么,是命令?其实是一种编译器,将人可读的java程序语言转化成java虚拟机可读的字节码文件。这里要说名下为什么java是门高级语言呢,相对于C,C++,汇编语言等,它们的源码可以直接编译成目标机器码,从而CPU能直接执行,但是JAVA语言确是运行在JAVA虚拟机上的,JAVA虚拟机把经过javac编译后的字节码文件转转化成针对每台不同主机识别的机器语言,所以java语言才实现了与平台无关性,简言之就是 javac把java代码编译成java字节码,JVM负责将java字节码(.class文件)zhua转成cpu可执行的目标文件。

Java编译器介绍:

首先要想编译一个文件,首先得把该文件一个字节一个字节的读进来,找到那些是java的关键词,比如if  else for  while等等啦,这个步骤就是语法分析,语法分析后把语法不对的进行错误提示,反馈给我们。正确的语法分析结果,会得到一个符合java语言规范的抽象语法树,它是有结构性的,把主要词法用结构性的形式组织在一起。

语法分析后进入语义分析,就是将复杂的语法转换成简单的语法,比如foreach转换成for结构,这样抽象语法树更加丰满也更接近于目标语言的语法规则。

最后通过字节码生成器转换成字节码文件,相当于汉译英,英译汉,这是数据结构也发生了变化,但是这样JVM就可以识别这份字节码文件了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值