10.早期(编译器)优化
Java语言中的泛型只在程序源码中存在,在编译后的字节码文件中,就已经替换为原来的原生类型(Raw Type,也称为裸类型)了,并且在响应的地方插入了强制转型代码。Java语言中的泛型实现方法称为类型擦除,基于这种方法实现的泛型称为伪泛型。
自动装箱、拆箱在编译之后被转化成了对应的包装和还原方法,如Integer.valueOf()
与Integer.intValue()
。遍历循环则把代码还原成了迭代器的实现,这也是为何遍历循环需要被遍历的类实现Iterable接口。变长参数在调用的时候变成了一个数组类型的参数。