Collections
作用
对集合操作的工具类
常用的方法
static void sort(List<T> list):排序
按照储存的数据的hashcode值进行排序
static void reverse(List<T> list, Comparator<? super T> c):排序
按照指定的比较器进行排序
static void reverse(List<?> list):翻转
static void shuffle(List<?> list):打乱
static boolean addAll(collection c, T...elements)
作用:给集合中添加多个
参数:
c:集合
elements:添加的元素
static void copy(List 新集合, List 老集合):拷贝
注意:新集合中的元素个数要大于等于老集合
int binarySearch(List 查找的集合, T 目标数据):查找
返回值:目标数据在集合中的位置,如果不存在返回-1
注意:该方法使用二分查找法,所以在使用该方法时集合必须是有序的
二分查找法使用的要求:数组必须有有序的
Map
简介
中文名:字典
作用:储存一组数据类型相同的数据
特点:
按照键值对应的方式储存
名词:
键(Key):类似于标记,如人的名字
值(Vlue):如人本身
键值对:一个键与一个值称为一个键值对
要求:
键:不允许重复
值:可以重复
Map提供的方法
增
v put(k key, V value):将该键值对储存到字典中
void putAll(Map m):添加多个
删
v remove(object key):删除该key所在的键值对
返回值:删除的键值对中的值
void clear():清空
改
v put(k key, V value)
注意:如果字典中不存在该key,那么本次就是添加,如果存在就是修改
查
int size();查询字典中储存的键值对的个数
boolean isEmpty();查询字典是否为空
boolean containskey(object key):判断指定的key是否存在
boolean containsValue(object value):判断指定的值是否存在
V get(object key):获取所有key对应的value
Set<k> keySet():获取所有key的集合
Collection<V> values():获取所有值的集合
Set<Entry> entrySet():获取所有键值对的集合
Entry:键值对
提供的方法
k getkey():获取该键值对的键
v getValue():获取该键值对的值
v setValue(V value):给该键值对修改值
Properties的特点
可以讲字典中的数据储存到文件中
也可以指定类型的文件数据读取到字典中
Properties特有方法
void store(OutputStream out, String comments)
作用:将字典中的数据储存到文件中
参数:
out:输出流,表示数据的储存位置
comments:提交信息
注意:
输出流会在IO流的时候细讲
void load(InputStream inStream)
作用:加载文件时,文件中的数据倒入到字典中
参数:
inStream:输入流,表示读取的文件地址
注意:
输入流会在IO流时细讲
String getProperty(String key)
作用:通过key获取字典中储存对应的value,类似于Map的get方法
优点:
getProperty返回值是String类型的,get方法返回值是key的泛型, 而Properties并没有定义泛型,所以返回值为object类型,需要手动转换为String
String getProperty(String key, String defaultValue)
作用:通过key获取对应value
参数:
key:键
defaultValue:默认值
注意:
如果取值时,字典中不存在该key,则返回默认值.如果存在该key,那么返回key对应的value
异常
引入
因为硬件或思考全面导致程序出现问题,这种问题就是异常
异常的分类
Throwable:所有错误的顶级接口
Error:错误
原因:因为硬件问题引起软件崩溃
处理方式:不处理
OutOfMemoryError:内存溢出异常,一般来说现在计算机的硬件不会导致该问题.所以当程序出现OutOfMemoryError时程序员可以通过对内存的优化,解决该问题.这个错误简称为OOM
Exception:异常
CheckedException:检查时异常
原因:因为代码编写未按照规定的语法格式编写,无法通过开发工具的检查
处理方式:正确书写语法
RuntimeException:运行时异常
原因:在代码编写时考虑不足导致的
处理:修改不足或进行容错
异常出现后情况
程序闪退,不会在向下继续进行
常见的异常
空指针异常:NullPointerException
原因:使用null调用了属性或方法
数组下标越界异常:IndexOutOfBoundsException
原因:操作的下标不在集合下标的取值范围内
算法异常:ArithmeticException
原因:代码中的数学运算不符合数学规律,比如被除数为0
类型转换异常:ClassCastException
原因:转换的对象并不是目标对象所属的类
数字格式异常:NumberFormatException
类不存在异常:ClassNotFoundException
异常的处理
1,修改代码
2,try catch
语法:
try{
有可能导致异常的代码
}catch(异常种类1 变量名){
//当try中的代码产生异常种类1的异常时,会执行此处代码
}catch(异常种类2 变量名){
//当try中的代码产生异常种类2的异常时,会执行此处代码
}...
finally {
必须要执行的代码
}
注意:
1,try中的代码不要写太多
2,finally可有可无
3,当有多个catch时,有继承关系先写子类异常,再写父类异常.没有继承关系顺序无所谓
3,声明异常与抛出异常
throws:声明异常
使用语法:
访问权限修饰符 修饰符 方法名(形参列表) throws 异常类1,异常类2...{
}
throw:抛出异常
使用语法:
throw 异常对象;
使用位置:
方法体
面试题:
1,throws与throw的区别?
throws:声明异常,在方法定义时使用
throw:抛出异常,在方法体中使用
2,finally,final,finalize的区别?
finally:配合try catch使用,表示必须执行的代码
final:不可变的,可以修饰类,属性,方法,变量
finalize:Object类提供的方法,当对象被销毁时,由系统调用
自定义异常
步骤:
1,创建一个类
2,使该类继承与异常类
3,提供无参构造函数,在无参构造函数中调用父类无参构造函数
4,提供有参构造函数,参数为String,其参数就是错误信息,在该构造函数中调用父类有参构造