1、Javac编译器
- 词法分析是将源代码的字符流转变为标记(Token)集合,单个字符是编写程序过程最小元素,而标记是编译过程最小元素
- 语法分析是根据Token序列来构造抽象语法树的过程,抽象语法树(AST)是一种用来描述程序代码语法结构的树形表示方式
2、Java语法糖的味道
- Java泛型只在源码存在,编译后的字节码文件被替换成原生类型,并且在相应地方插入强制转型代码,因此对运行期的Java语言来说,ArrayList与ArrayList就是同一个类
- 泛型的实现方法称为类型擦除,基于这种方法实现的泛型称为伪泛型
- 方法重载要求方法具备不同的特征签名,返回值不包含在方法的特征签名中,所以返回值不参与重载选择,但是在Class文件格式中,只要描述符不是完全一致的两个方法就可以共存。
public static void main(String[] args) {
Integer a = 1;
Integer b = 2;
Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
Long g = 3L;
System.out.println(c == d);
System.out.println(e == f);
System.out.println(c == (a + b));
System.out.println(c.equals(a + b));
System.out.println(g == (a + b));
System.out.println(g.equals(a + b));
}