一、Collection集合中的三个知识点
我们在学习集合的时候会接触到三个常用的知识点,这三个知识点看起来不起眼但是在关键时刻,
关键的地方能起到非常强大的作用。在这我就来介绍一下这三知识点。
1.1泛型
说明:泛型是jdk1.5之后的新特性
数据类型
1:什么是泛型:
泛型就是广泛的类型,也是一种数据类型,这种数据类型可以是任意类型,编写过程中是不能确定其数据类型的,创建对象时候可以确定其具体类型
2、泛型是编译期的行为,只能在编译器有效,如果能过跨过编译期,泛型将没有意义
3、如何定义泛型类:
在类后面加上<>括号中可以编写任意长度的字符,不能是数字
一般情况下使用T type 类型 E element 元素
4、泛型接口
实现类实现泛型接口时不指定泛型类型 此时创建实现类对象是可以指定泛型类型
class UserServiceImpl implements UserService实现类实现泛型接口时指定泛型类型 那么将确定泛型类型class UserServiceImpl implements UserService
5、泛型方法
方法中使用泛型 该方法就是一个泛型方法静态方法无法使用泛型类中声明的泛型类型 因为泛型类型的确定是创建对象时确定的而静态方法是先于对象存在的 ,如果要使用,在当前静态方法上声明泛型类型
public static <泛型类型> vaid 方法名()
1.2、反射
1、什么是反射?
反射是运行期的行为
2、class类
这个类产生的实例用来描述一个类。例如Class这个class对象描述的就是student类。所有的student对象和Student类共享当前的class对象
3、如何获取class对象:
Class.forName(“类的权限定名”);
对象.getClass();
类名.Class
class对象.getSuperClass();
4、常用方法:
getField(String name);//获取指定public字段,返回Field对象
getFields();//获取所有public字段,返回Field数组
getDeclaredField(String name);//获取指定字段,不限权限
getDeclaredFields();//获取所有字段,不限权限
Field类常用方法:
getType();//获取字段类型
getName();//获取字段名
getModified();获取权限修饰符
Modeified.toString();//可以将数字的全休修饰符转换成对应的修饰符
getMethod(String name);//Method对象
getMethods();
getDeclaredMethod(String name);
getDeclaredMethods();
Method类常用方法:
getName();
getRerunType();返回类型
getParameterCount();//获取参数个数
getModified();//获取权限修饰符
//public
getConstructor(null);//获取空构造器
getConstructor(指定类型的构造器);//Indeger.TYPE
getConstructors();//获取所有非public构造器
getDeclaredConstructor();获取指定的构造器,null为空构造器
getDeclaredConstructors();获取所有构造器
Constructor类常用方法:
getName();
getParameterCount();//参数个数
newInstance();//通过构造器获取一个实例
5、Class对象能做什么
1、获取一个Class对象后就能获取到该类的属性方法构造器
2、使用反射构造对象
3、使用反射调用某个非public修饰的构造器的时候,需要取消检查
setAccessible(true)//取消检查
4、恢复检查
setAccessible(false);
6、反射会破坏单例模式,可以在构造器中丢出一个运行时异常,防止反射创建对象
private 类名(){
if(对象名!=null){
throw new RuntimeException(“干什莫你”);
}
}
1.3、迭代器
1、Iterator是java.lang包下的接口,实现改接口的类都能成为foreach的目标
2、Iterator是迭代器,用来迭代当前集合对象
3、ListIterator是一个接口,这个接口可以支持并发修改,内部提供了add set remove方法
如果对于一个List集合对象要通过使用迭代器做修改(删除、添加、修改)那么请使用ListIterator
4、用法:
a)增强for循环
for(String str:目标集合){
System.out.println(str);
}
b)Iterator迭代器
for(Iterator it = new Iterator; it.hasnext;){
System.out.println(it.next);
}

本文深入探讨Java集合框架中的三个关键概念:泛型、反射和迭代器。介绍了泛型作为JDK1.5引入的特性,其在编译期的行为和如何定义泛型类、接口及方法。反射部分讲解了运行期行为,Class对象的获取方式及其功能,如获取类的属性、方法和构造器。迭代器部分则涵盖了Iterator和ListIterator的使用,以及如何通过它们遍历和操作集合。
1086

被折叠的 条评论
为什么被折叠?



