Java SE 第五十五,六,七,八,九,六十讲 泛型高阶晋级
1.使用泛型时,编译无无错误,那么执行肯定没问题
2.限制泛型的可用类型,不管是具体的类,还是关键字都使用extends关键字,表示这个类型必须继承某个类,或是是吸纳某个接口
3.当没有指定泛型继承的类型或接口时,默认使用T extends Object,所以默认情况下任何类型都可以作为参数传入.
4.
super关键字,指定类型只能是某类的超类
5.<? extends Object >可以简写为<?>
6.作业的策略模式实现:
7.泛型的使用情景:使用集合的时候,必须使用泛型.
8.For-Each循环:
当 增强的for循环时,如果要访问集合或是数组的下标,那么最好使用旧式的方式实现循环或是遍历,而不要使用增强的for 循环,因为它丢失了索引信息.
9.自动装箱,自动拆箱.
10.Integer类有一个缓存,它会缓存介于--128~127之间的整数.
11.可变参数:
本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以残敌数组对象.但如果将方法中的参数定义为数组,那么只能传递数组对象而不能离散的值.
12.可变参数必须要作为方法的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数.
13.枚举(enum)类型:并不是类,但是和类很像.
public enum Color
{
red,white,blue
}
我们所定义的每个枚举类型都继承自java.lang.Enum类,枚举中的每一个成员默认都是public static final的.
14.而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance).换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么.在运行期间我们无法再使用该枚举类型穿件新的实例了,这些实例在编译期间就已经完全确定下来了.
15.静态导入:①导入静态变量:import static com.donaldjohn.Common.age;
②导入静态方法:import static com.donaldjohn.Common.output
注意:使用import static 时,要一直导入到类中的静态成员变量或静态方法.一定程度上降低代码的可读性.