Javac编译过程

本文介绍了Java编译器Javac的工作流程,包括词法、语法分析,填充符号表,语义分析和字节码生成。词法分析将源代码转化为标记,语法分析构建抽象语法树,符号表用于地址分配,语义分析确保源程序的逻辑正确性,最后生成字节码。Javac编译器是Java程序转换为.class文件的关键步骤。
摘要由CSDN通过智能技术生成

引入

Java的编译器先将其编译为class文件,也就是字节码,这一步称为Javac编译;然后将字节码交由jvm(java虚拟机)解释执行,因而很多地方说“java是一种半编译、半解释执行”的语言。当然现在由于JIT的出现,这种说法有部分是错误的。接下来的两篇博客,会简略介绍一下Javac 编译过程和JIT机制。

Javac编译过程

Javac编译器将.java文件编译成为.class文件的过程,这里的Javac编译器称为前端编译器;相对应的还有后端编译器,它在程序运行期间将字节码转变成机器码。

Javac编译(前端编译)包括 词法、语法分析填充符号表语义分析字节码生成

词法、语法分析

词法分析是将源代码的字符流转变为标记(Token)集合。单个字符是程序编写过程中的的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符等都可以成为标记。例如,下面这行代码

int num = a + 6;

这行代码包含了6个标记,分别是 int 、 num 、 = 、 a 、+ 、 6;

这里的整型标志int虽然由三个字符构成,但是它只是一个标记,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值