知识点汇总
1 泛型的使用:jdk 5.0新增的特性。
2在集合中使用泛型:集合接口或集合类在jdk5.0时都修改为带泛型的结构
在实例化集合类时,可以指明具体的泛型类型。
泛型的类型必须是类,不能是基本数据类型,基本数据类型由包装类替换
3自定义泛型结构:泛型类、泛型接口、泛型方法
泛型不同的引用不能相互赋值;
异常类不能声明为泛型;
泛型方法:在方法中出现了泛型结构,泛型参数与类的泛型参数没有关系
4.泛型在继承方面的体现:虽然D,C是子父类关系但是G和G不是子父类关系而是并列的关系。
5通配符的使用
List<?>不能向其内部添加数据除了添加null之外。
有限制条件的通配符的使用
? extends Man:问号可作为 Man 类或者是其子类的通配。
? super Man:问号可作为Man类或者是其父类的通配。
public class GenericTest {
public static void main(String[] args) {
//<>中只能放包装类不能是基本数据类型
ArrayList<Integer> arrayList=new ArrayList<Integer>();
arrayList.add(11);
arrayList.add(22);
arrayList.add(33);
arrayList.add(44);
Iterator<Integer> iterator=arrayList.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
//HashMap举例
Map<String ,Integer> map=new HashMap<String ,Integer>();
map.put("roy",22);
map.put("Jerry",23);
map.put("jack",24);
Set<Map.Entry<String ,Integer>> set=map.entrySet();
Iterator<Map.Entry<String, Integer>> iterator1 = set.iterator();
while (iterator1.hasNext()){
Map.Entry<String,Integer> e=iterator1.next();
System.out.print(e.getKey());
System.out.println(e.getValue());
}
//泛型自定义示例
Order<String> order=new Order<>();
order.setOrderT("Q");
System.out.println(order.getOrderT());
//通配符示例
List<String> list1=null;
List<Integer> list2=null;
List<?> list3=null;
list3=list1;
list3=list2;
}
//泛型方法举例
public <E> List<E> copy(E[] arr){
ArrayList<E> list=new ArrayList<>();
return list;
}
}
File类的使用:File类的一个对象代表一个文件或文件目录
①File(String filepath)
②File(String parentPath,String childPath)
③File(String parentFile,String chilePath)
代码示例:
public class IOTest {
public static void main(String[] args) throws IOException {
File file=new File("hello.txt");//相对路径和Module同目录下
File file1=new File("C:\\hello.txt");//绝对路径
//获取绝对路径
System.out.println(file.getAbsoluteFile());
//获取路径
System.out.println(file.getPath());
//获取名字
System.out.println(file.getName());
//获取parentFile
System.out.println(file.getParent());
//获取文件长度
System.out.println(file.length());
//获取最后修改时间 毫秒值
System.out.println(file.lastModified());
/*
*获取文件名String[] s=file.list()
* 获取路径File[] f=file.listFiles()
* */
File file2=new File("D:\\application");
String[] strings=file2.list();
for(String s : strings){
System.out.println(s);
}
/* File[] files=file.listFiles();
for(File f : files){
System.out.println(f);
}*/
/*
file1.renameTo(file2)把文件重命名为指定的文件路径返回boolean
若要保证成功file1必须存在,而file2不能存在
*/
//判断文件是否存在
System.out.println(file.exists());
//判断是不是一个文件目录
System.out.println(file.isDirectory());
//判断是不是一个文件
System.out.println(file.isFile());
//判断是否可读
System.out.println(file.canRead());
//判断是否可写
System.out.println(file.canWrite());
//判断是否隐藏
System.out.println(file.isHidden());
/*
* 文件的创建和删除
* createNewFile()创建文件若文件存在则不创建
* mkdir()创建文件目录,若文件目录存在就不创建了
* mkdirs()创建文件目录,若上层目录不存在一并创建
* delete()删除文件或文件夹
* */
//创建、删除示例
File file3=new File("he.txt");
if(file3.exists()){
file3.delete();
}else {
file3.createNewFile();
}
}
}