Java—了解编译原理 (前端编译)
2021/9/17 17:06:37
本文主要是介绍Java—了解编译原理 (前端编译),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- Java前端编译
- 1.词法分析
- 2.语法分析
- 3.语义分析
- 4.生成中间代码
- 前端编译优缺点:
- Java后端编译
Java前端编译
把Java源码文件编译成class文件的过程:. java → . class
1.词法分析
词法分析阶段是编译过程的第一个阶段
这个阶段的任务是将代码中的语句分割成一个一个的字符,从左到右一个字符一个字符地读入源程序,将字符序列转换为标记序列 (Token序列)
但是:词法分析器通常不会关心标记之间的关系 (语法分析的范畴)
2.语法分析
用词法分析产生的字符,构造一棵"语法树",即:将单词序列组合成各类语法短语,如"程序",“语句”,“表达式” 等,语法分析程序通过遍历"语法树"来检测源程序在结构上是否正确
3.语义分析
代码优化阶段,编译过程的一个逻辑阶段
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息,其中一个重要部分就是类型检查
4.生成中间代码
在Java中,由 javac 按照 Java 语言的语法对源文件进行检测,是否违反语法规范
若符合,则按照字节码文件规范生成相对应的字节码文件,而这个字节码文件就是一种中间代码
字节码文件,有统一的格式
前端编译优缺点:
优点 | 缺点 |
---|---|
阶段的优化是指程序编码方面的 | 对代码运行效率几乎没有任何优化措施 |
编译成的 class 文件可以直接给JVM解释器解释执行,省去编译时间,加快启动速度 | 解释执行效率较低,所以需要结合下面的JIT编译 |
Java后端编译
通过Java虚拟机 (JVM) 内置的即时编译器 (Just In Time Compiler,JIT编译器);在运行时把Class文件字节码编译成本地机器码的过程
这个后面在进行详细讲解~~
这篇关于Java—了解编译原理 (前端编译)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-28SpringBoot3.2更新声明!
- 2024-05-28中外程序员到底有啥区别?
- 2024-05-25外企也半夜发布上线吗?
- 2024-05-24鸿蒙原生应用再新丁!芒果TV 入局鸿蒙
- 2024-05-22基本概念
- 2024-05-22检索数据
- 2024-05-22排序数据
- 2024-05-22基础过滤数据
- 2024-05-22通过逻辑操作符过滤数据
- 2024-05-22通过通配符过滤数据