JAVA注解三种基本的注解,Deprecated过时的操作方法,Override声明要重写父类的一个方法的说明,如果注解这个关键字而没有重写父类的话,编译器会报错。SuppressWarnings表示取消编译器的警告。Retention注解表示字段可以作用的生命周期。target注解所适用的程序元素的种类。
ArrayList后尖括号可以规定集合中元素的类型,如果写入不是一个类型的话,编译器会报错,这样防止了强制类型转换带来的逻辑错误。
泛型定义编译完了以后,参数类型自动舍弃,意思就是虚拟机不知道你所规定的泛型类型了,称之为去类型化。
泛型可以通过反射方法调用函数加入集合中不是泛型所指定的成员变量,说明泛型作用范围在编译阶段不是执行阶段。
JavaBean<Integer> bean2 = new JavaBean<Integer>();
bean2.setK(3);
JavaBean<String> bean1 = new JavaBean<String>();
bean1.setK("hello");
泛型通配符,Collection<?> collection.无论泛型指定的集合类型是什么,都有.size方法。然后可以通过for迭代输出。
Map.Entry可以返回一个集合实例化的对象,使我们不必再得到关键字以后再返回MAP进行查找,而直接操作集合中的一个对象。
通过getKeys和getValue获得两项属性。
泛型方法引用类型不能是基本类型。
我们可以获得泛型的实际参数类型,通过实例对象不可以获得,因为编译器已经去类型化,我们必须通过调用相应的方法来获得泛型的实际参数类型,从而可以获得。