集合(Collection 超类接口)
1、list(按序放置按索引获取)-增删改查 sublist(int,int)子链表
ArrayList(变长数组)
vector(线程安全 方法上加入synchronized 对象安全)效率降低
LinkedList(双向链表-查找速度加快,队列处理-先进先出,后进先出)
加入first-last 先进先出
加入pop-push 后进先出
2、set(按集合内置顺序放置,无索引,不重复)
Hashset(根据hash值放置)
TreeSet(根据内容值放置,典型的排序集合,必须支持Comarable)
3、map(键值对集合,以键(index)的内容进行处理)
HashMap<String,String> map = new HashMap<>();
put()
get()
remove()
map.containsKey(key) 是否存在键
Set<Entry<String,String>> set= map.entrySet();
Set<String> set1 = map.keySet();
Collection<String> aaa = map.values();
Hashtable(线程安全,方法上加入synchronized 对空值不支持-key和value不能为null)
ConcurrentHashMap 替代了 Hashtable
TreeMap(根据key值排序放置,必须支持Comareble)
异常
Throwable 所有错误
error 不可捕获
unresolved compilation problem 编译错误
memory out error 内存超出错误
exception 可捕获
try {
//运行代码
} catch (Exception e) {
//解决错误
}
常见异常
java.lang.NullPointerException 调用null对象方法
java.lang.NumberFormatException 数字转换异常
java.lang.ClassCastExceptoin 强制转换错误
java.lang.ArrayIndexOutOfBoundsException 数组范围超出范围
java.lang.IoException 文件流错误
java.lang.SQLException
错误解决 console窗口
异常类型 类名
异常信息 错误描述
异常栈 (第一个用户错误行)
异常处理
处理可能出现异常代码
try {
//运行代码
}
解决方案(可多个,按上下顺序分别捕获)
catch(ArrayIndexOutOfBoundsException e){
//解决错误
}
catch (Exception e) {
//解决错误
}
自定义异常
创建异常类 继承exception
重写getMessage方法
触发异常throw new AgeOutBoundsException(age);
在异常内加入属性+构造方法,详细描述错误信息
return age+“岁-年龄超出”;
throw 抛出异常到catch 有错误要解决
throws 抛出异常到方法外 调用方解决
finally 必须运行(处理异常要return时使用)
e.printStackTrace(); 尽量都打印异常信息
构造方法try尽量不省
行为方法能省就省
Debug调试
断点:运行到断点时线程挂起
debug运行(断点挂起)
查看修改变量/断点管理
控制运行 F5 跳入(方法里) F6 下一行 F7 跳出 F8 继续下个断点
IO流(read输入 write输出)
1.创建流
2.读写
3.关闭流
字符流/字节流
Reader r;
Writer w;
FileReader w = new FileReader("c://a.txt");
char[] data = new char[10000];
w.read(data);
//int len= w.read(data);
//data = Arrays.copyOf(data, len);
System.out.println(new String(data));
w.close();
FileWriter f = new FileWriter("c://a.txt");
f.write("fsefew");
f.close();
inputstream i;
outputstream o;
FileOutputStream f = new FileOutputStream("c://b.txt");
f.write("feweewf".getBytes());
f.close();