> 在编译器实现中,也有非常明显的层次之分。这些层次可以完全按照编译原理理论来划分。包括:
1.词法分析:将文本代码拆分为一个一个合法的单词
2.语法分析:基于 词法分析 得到的单词流构建语法树
3.语义分析:基于 语法分析 得到的语法树进行语义上的检查等
4.生成器:基于 语义分析 结果(可能依然是语法树)生成中间代码
5.编译器:基于 生成器 得到的中间代码生成目标机器上的机器代码
6.链接器:基于 编译器 生成的目标代码链接成最终可执行程序.
-- 反射属于动态编译。编译方式说明:
1. 静态编译:在编译时确定类型 & 绑定对象。如常见的使用new关键字创建对象 ;
2. 动态编译:运行时确定类型 & 绑定对象。动态编译体现了Java的灵活性、多态特性 & 降低类之间的藕合性。
java文件编译为字节码文件。栈上的指令。
编译指令mov add等