Java教程

Java—了解编译原理 (前端编译)

本文主要是介绍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—了解编译原理 (前端编译)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!