javac 小记

javac 到底是什么?

javac 就是一个编译器,它把 Java 源代码编译成 Java 字节码,即 JVM 能够识别的二进制形式的文件。

javac 由什么构成?

  • 词法分析器:识别源代码中的 Java 关键字(if、else、while 等),形成规范的 Token 流;
  • 语法分析器:对 Token 流进行语法分析,检查它们形成的组合是否符合 Java 语法规范,形成抽象语法树;
  • 语义分析器:将 foreach、注解等复杂的语法转换成最简单的语法,形成注解过后的语法树;
  • 字节码生成器:将注解过后的语法树翻译成字节码;

附赠一个小问题

  • 问:为什么源代码中即时计算的字符串(字面量 + 字面量)并不会产生多个对象?
  • 答:因为 javac 在编译期间,已经对这些字符串进行了合并操作。
原文地址:https://www.cnblogs.com/optor/p/7750083.html