集合

集合的个数不固定,可以任意扩容,可以随时添加删除元素。

List集合,特点:可重复、有序

List集合中一些方法的应用:

.add(Object o)//将元素添加到集合对象中

.get(int n)//获取索引为n的元素

.size()//获取集合的元素个数

迭代器

普通迭代器(Iterator)在遍历集合的同时不能添加或删除元素,否则会报:并发修改异常

列表迭代器(ListIterator)在遍历集合的同时可以修改集合中的元素(增、删),必须使用列表迭代器中的方法。

Collection类

.max(List)//获取集合中最大的元素

.sort(List)//对集合进行升序排列

.reverse(List)//对集合进行翻转

.shuffle(List)//把集合打乱,进行随机排序

Set集合

Set集合的唯一性依赖:equals() 和 hashCode()两个方法,默认调用的是Object类中的这两个方法,比较的是地址值是否相同。若要保证其内容的位移唯一性则需要重写这两个方法。

Map集合

.put(Integer , String)//把元素添加到集合中

.get(Integer)//根据键,获取值

Map集合的遍历需要先获取所有键的集合,再获取迭代器对象,再对迭代器进行遍历

IO流

异常处理方式

try{

//尝试要执行的代码

}catch(Exception e){

//出现问题后的代码(解决方案)

}finally{

//即使try, catch 中有return, finally 里边的代码都会执行

}

抛出异常是加在函数名的后面的

public static void shows throws Exception{//此时该函数就抛出了异常

}

IO流体系

字符读写数据的IO流

Reader : FileReader、BufferdReader

Writer : FileWiter、BufferedWriter

字节读写数据的IO流

InputStream : FileInputStream、BufferedInputStream

OutoutStream : FileOutputStream、BufferedOutputStream

将文件封装成file对象的方法

1、File file = new File("路径+文件名");//根据字符串形式的父目录以及子目录创建file对象

2、File file = new File("路径" , "文件名");//根据字符串形式的父目录以及子目录创建file对象

3、File file = new File("路径");

      File file1 = new File(file , "文件名");//根据父目录对象,以及字符串形式的子目录来获取file对象

File类

.createNewFile()//创建文件

.mkdir()//创建单级目录文件夹(平常很好用)

.mkdirs()//创建多级目录文件夹(也可以创建单级目录)

.isDirectory()//判断file是否是文件夹

.isFile()//判断file是否是文件

.exists()//判断file是否存在

.getAbsolutePath()//获取file的绝对路径

.getPath()//获取file的路径

.getName()//获取文件名

.list()//获取文件夹下所有的名称数组

.listFiles()//获取文件夹的File对象数组

Reader类

.read()//读取文档的内容,返回的是ASCI码

.close()//释放资源(每次读取完文件一定要执行的操作)

.read(char[ ])//一次读一个字符串,将读取到的内容存入数组中,并返回读取到的有效字符数,否则返回-1

writer类

.writer(' ')//一次写入一个字符

.writer(char[ ] , star , len)//一次写入一个字符数组

.writer(str)//写入一个字符串,writer()方法的执行都会把原文档的内容给覆盖掉

在使用字符缓冲流时,如果遇到换行的情况,就要加上"\r\n" 来进行换行。而其他方法则不需要

字符流只能拷贝纯文本文件,拷贝其他类型的文件可使用字节流

反射

通过反射方式获取构造方法

getConstructor(Class<?>...parameterTypes)   //返回一个Constructor对象,仅公共构造函数

getDeclaredConstructor(Class<?>...parameterTypes)  //返回一个Constructor对象,可获取私有构造函数

getConstructor()     //返回此类型所有(不含私有)构造函数的数组

Class<?>...:可变参数,代表Class类型的数组

?:通配符,代表不确定的任意类型

通过反射方式获取成员方法并使用

getMethod(String name,Class<?>...parameterTypers)  //返回一个Method对象,仅公共成员方法

getDeclaredMethod(String, Class<?>...)  //返回一个Method对象,可获取私有成员方法

getMethods()  //返回此类所有(不含私有)方法的数组

name : 方法名

parameterTypers : 方法的参数列表

method.setAccessible(true)  //开启暴力反射,私有的方法也能反射出来

method.invoke(...) //调用方法

反射方法获取成员变量并使用

多线程没讲