本帖最后由 小石姐姐 于 2018-1-5 09:32 编辑
JavaSE进阶之随笔记 就业第七天 集合之set接口 特点:元素存取无序,元素不可重复,无索引
HashSet集合 创建集合对象 添加元素对象 遍历集合对象 1.转数组 2.迭代器 3.增强for 通过查看源码发现: 确保元素唯一性,先比hash值,再比地址值,或进行equals方法比较.比较结果一样则认为重复不添加.不一样则添加
当hashCode方法永远返回1时,所有对象的hash值一样. 有一些对象的成员变量不同,但是还是需要进行hash和equals方法进行比较 为了提高程序的效率,可以把成员变量和hashCode方法的返回值关联起来,
collection和collects有什么去区别? collection是集合体系的最顶层,包含了集合体系的共性 collections是一个工具类
Map双列集合(接口) 概述:双列集合用于提供一对一数据的处理,与Collection属于同级
特点:将键映射到值得对象.一个映射不能包含重复的键,每个键最多只能映射一个值 键不可重复,值可以重复 键是无序的
Map和Collections的区别 Map:双列集合,用于处理具有对应关系的数据,key是不可重复的,也叫夫妻对集合 Collection:单列集合,具有不同的子体系,有有序的,也有无序的,也叫单身汉集合
常用功能: 删除功能: void clear();清空集合 V remove(Object obj):根据指定的key删除对应关系,并返回key对应的值 判断功能: boolean containKey();判断指定key是否存在 boolean containValue();判断指定的value是否存在 boolean isEmpty();判断集合是否为空 覆盖功能: V put(K key,V value);将key映射到value,key存在则覆盖value, 遍历功能: Set<Map.Entry,V) entrySet() Set<K> keySet();将所有的键返回成一个Set集合 Collection<V> values();将所有的元素返回成一个Set集合或List集合, 获取功能: V get(Object key) Map的遍历方式: 1.找出所有的key,遍历所有的key集合,获取key,通过get()方法获取value 2.通过Map的EntrySet方法来把Key和Value输入到Map的内部类Entry中,再调用Entry对象的getKey方法和getValue方法来遍历输出
可变参数 当参数不确定,但类型要一致,Java可以直接转成数组 实参:(实参1,实参2,....) 形参:类型名...变量名
注意:可以在可变参数前添加别的形参,但不可以在后面加
就业第八天 异常: 概述:不正常,我们在代码出现的编译或者运行时的错误 异常包含了错误的类型、原因以及位置
体系结构: Throwable(最顶层): Error:出现的不能够处理的严重问题 Exception:可以处理的问题,编译时期的异常 RuntimeException:编译时正常,运行时发生的异常 常见异常: NullPointerException:空指针 ArrayIndexOutOfBoundException:数组指针越界 任何数字除以0都会抛出异常
异常的处理方式: //第一种方式 捕获 try{
存放可能发生的异常代码 可以有多行代码
}catch(异常类型 异常对象名){ 对异常进行处理的代码 也可以通过异常对象名获取异常的信息 }finally{ 用于释放资源 清理垃圾 }
首先执行try语句 发现异常,异常下面的代码不执行,跳入catch语句,catch语句结束后,try...catch结束 没有异常,不执行catch语句
处理多个异常 使用多个try...catch语句 使用一个try和多个catch语句 多个catch的顺序 多个 平级没有顺序 有子父类,父类必须在后面
//第二种方式 抛出 在不想处理或没有能力处理异常时,可以选择抛出 关键字:throws,在方法的声明处使用 定义格式: 方法名(参数列表) throws 异常类型1,异常类型2........{
}
JVM处理异常: 异常我们不处理,JVM会把异常的种类,原因还有把位置显示在命令行,并且终止程序,异常后的代码不再执行 try...catch操作捕获的异常 String getMessage(); 返回异常原因 String toString(); 返回异常类型 void printStackTrace(); 输出异常原因和类型,还有位置 异常分类 1.运行时期异常:RuntimeExceptipon的子类就是运行时期异常,可以自行处理或者不处理 2.编译时期异常: 非RuntimeException ,编译时期的一样必须处理 两种异常处理方式 throws:处理异常的一种方式将异常抛出,由调用者处理 throw:制造异常的方式,并且结束方法 注意 抛出(throws)
递归:大事化小,小事化了
注意: 1.递归一定要有出口 2.递归次数不宜过多
就业第九天 IO流 绝对路径:固定不可变的路径,以盘符开头 相对路径:相对于某个参照物,不以盘符开头
FIle类 常用功能: 创建功能 boolean createNewFile(): 创建新文件,返回是否创建成功 文件不存在的时候返回true并创建文件,存在的时候返回false boolean mkdir(): 创建目录,返回是否成功 文件夹不存在的时候返回true并创建,存在的时候返回false boolean mkdirs(); 创建多级目录,包括指定路径中缺少的父级目录, 当多级文件夹不存在时返回true并创建多级文件夹,存在返回false 判断功能 boolean exists(): 判断文件或文件夹是否存在,存在true,否则false boolean isAbsolute(): 判断File对象指向的路径是否是绝对路径,是true,否false boolean isDirectory(): 判断File对象指向的是否是目录,是true,否false boolean isFile(): 判断File对象指向的是否是文件,是true,否false boolean isHidden(): 判断File对象指向的路径是否有隐藏属性,是true,否false 获取功能 String[] list():获取当前路径下所有文件和目录的名称,返回成一个字符串数组 File[] listFiles():获取当前路径下所有文件和目录,返回成一个File类的对象数组 static File[] listRoots():返回当前电脑的所有盘符 删除功能 boolean delete(): 删除文件或文件夹,返回是否成功 当指定文件或文件夹存在时删除文件,返回true,不存在时返回false 注意:delete()方法删除文件夹,文件夹下面不能有文件和文件夹
IO流分类 流向 输入流 读取数据 FileReader Reader 输出流 写出数据 FileWriter Writer 数据类型 字节流 字节输入流 读取数据 InputStream类 字节输出流 写出数据 OutputStream类 字符流 字符输入流 读取数据 Reader类 字符输出流 写出数据 Writer类
递归中
就业第十天 转换流 OutputStreamWriter:字节输出流转字符输出流
InputStreamReader:字节输入流转字符输入流
打印流 PrintStream:字节打印流
PrintWriter:字符打印流 特点: 1.自动换行 2.输出除了字节以外的任意类型 3.通过构造方法配置,实现自动刷新(调用println、printf或format才有用) 4.包装流,不具备写功能 5.可以把字节流转换流字符输出流
对象操作流:可以用于读写任意类型的对象 ObjectInputStream:对象输入流 readObject ObjectInputStream(InputStream in) ObjectOutputStream:对象输出流 writeObject ObjectOutputStream(OutputStream out)
注意:使用对象输出流写出对象,只能用对象输入流写入 解决对于实现序列化接口黄色警告的问题
集合 Properties :表示一个持久的属性集,属性列表中每个键及对应值都是一个字符串 构造方法: Properties 和IO流结合 1.void list(PrintWriter out) 2.void load(Reader reader) 3.void store(writer 属性 配置 Map(); 乱码 编码表 ASCII:美国标准码 GB2312 ---GBK 国标和国标扩展码 Unicode:万国码 UTF-8:Unicode的一种实现方式,长度可变的码表,一个字符栈1or2or3个字节 ANSI:本地编码表,根据系统决定编码 原因 字符串编码的转换 标准输入输出流 public static final InputStream in;字节输入流,用来读取键盘录入的数据 public static final OutputStream out;字节输出流,将数据输出到控制台
|
|