day14_自我总结
一、回顾
-
SimpleDateFormat 时间格式化类
(返回值) 调用方法名 传入内容 Date | parse | (String source) 将字符串的时间转换为date对象 String | format | (Date date) 将Date对象格式化成指定的字符串 -
Scanner
(返回值) 调用方法名 传入内容 String | next | () 接收键盘录入的字符串 String | nextLine | () 获取一行内容 int | nextInt | () 用于接收各种基本数据类型的数据 boolean | hasNextInt | () 用于判断键盘录入的数据的类型与接收的数据类型是否一致 -
大数据类型 BigDecimal
(返回值) 调用方法名 传入内容 BigDecimal | add | (BigDecimal augend) 加法 BigDecimal | subtract | (BigDecimal subtract) 减法 BigDecimal | multiply | (BigDecimal multiplicand) 乘法 BigDecimal | divide | (BigDecimal divisor) 除法 BigDecimal | remainder | (BigDecimal divisor) 取余 -
数组工具类 Arrays
(返回值) 调用方法名 传入内容 int | binarySearch | (int[] a,int key) 搜索指定数据在数组中索引位置 boolean[] | copyOf | (boolean[] original,int newLength) 复制指定的数组 void | fill | (int[] a,int val) 填充指定数据在赋值给数组 void | sort | (byte[] a) 按照升序排序 -
异常 = 编译时异常 + 运行时异常
体系:Throwable ==> Error | Exception ==> RuntimeException捕获异常
1.try - catch try{ 可能产生异常的代码 }catch(异常类型声明){ 处理异常的方式 } 2.try - catch - catch try{ 可能产生异常的代码 }catch(异常类型的声明){ 处理异常的方式 }catch(异常类型的声明){ 处理异常的方式 } 3.try - catch - finally try{ 可能产生异常的代码 }catch(异常类型声明){ 处理异常的方式 }finally{ 最后执行的代码 } 4.try - finally try{ 可能产生异常的代码 }finally{ 最后执行的代码 }
二、异常中的类:Throwable
2.1 简介
1. Throwable类是所有错误或异常的 “超类” ;
2. 错误或异常是其子类时,才能(throw)抛出;
3. 常用子类:Error 和 Exception;
| 方法名称 | 方法描述 |
|---|---|
| public void printStackTrace() | 打印堆栈信息(错误信息) |
| public String getMessage() | 返回此 throwable 的详细信息字符串 |
| public String toString() | 返回此 throwable 1的简短描述 |
package com.qf.test02;
public class Test02 {
public static void main(String[] args) {
try {
int [] nums =null;
System.out.println(nums[10]);
} catch (Exception e) {
//e.printStackTrace();
// System.out.println(e.getMessage());
System.out.println(e.toString());
}
}
}
2.2 throws 声明异常(重点)
1.throws 声明异常
2.方法代码有异常又不想处理,可以用throws声明异常,让调用方法的人
3.语法:定义在方法参数的后面
Def:访问修饰符 返回值类型 方法的名称(参数列表) throws 异常类型{
方法体;
return 返回值;
}
4.说明:
A.声明异常的范围越小越好
B.声明异常 是RuntimeException 或其子类时 ==》调用者可以不需要进行处理
C.声明的异常 不是RuntimeException 或不是其子类时 ==》调用者需要进行处理
D.throws 可以声明多个异常
2.3 throw 抛出异常(重点)
1.throw 抛出异常
2.语法: 在方法中编写
Def:访问修饰符 返回值类型 方法的名称(参数列表){
throw new 异常类型()
}
3.说明:
A.声明异常 是RuntimeException 或其子类时 ==》调用者可以不需要进行处理
B.声明异常 不是RuntimeException 或不是其子类时 ==》调用者需要进行处理
//处理的方法: a.在方法中声明异常 b.使用try-catch来捕获异常
C.在同一作用域下 只能抛出一个异常
2.4 throws 与throw(重点)
| throws | throw |
|---|---|
| 声明异常 | 抛出异常 |
| 声明多个异常 | 抛出一个异常 |
| 声明的异常不一定会发生 | 抛出的异常确实存在 可能会发生 |
| 定义方法参数后面 | 定义在方法中 |
2.5 继承中的异常(重点)
在继承中 重写的方法声明的异常必须小于等于父类的范围(必须是父类声明异常的本身或者其子类)
2.6 自定义异常 (了解)
1.jdk提供很多的异常类 jdk提供不能满足实际开发中的异常信息的要求 就可以自定义异常类
2.步骤
A.定义一个类同时其继承 Exception
B.调用父类的构造方法 设置异常信息
三、集合
3.1简介
数组 | 集合(用于存储数据的容器)
长度不可变 | 长度可变
可存基本、引用类型 | 只能存引用类型
| 单列集合 | 双列集合
| 每个元素都是独立的单元 | 以键(key)值(value)对来存储的
| ==> 以组为单元
单列集合
|| Collection (顶级接口)
|| List Set
|| ArrayList LinkedList Vector HashSet TreeSet
双列集合
|| Map (顶级接口)
|| HashMap TreeMap
|| LinkedHashMap
3.2 Collection 接口
简介
A.Collection 层次结构 中的根接口
B.它提供更具体的子接口(如 Set 和 List)实现
C.实现类:(很多) eg: ArrayList \ LinkedList \ Vector
常用方法
| 方法的名称 | 方法的描述 |
|---|---|
| boolean add(E e) | 向集合中插入元素 |
| void clear() | 清空集合中元素 |
| boolean contains(Object o) | 集合中是否包含此元素 |
| boolean isEmpty() | 集合是否为空 |
| Iterator |
将集合转换为迭代器 |
| boolean remove(Object o) | 删除集合中元素 |
| int size() | 获取集合的长度 |
| Object[] toArray() | 将集合转换为数组 |
四个带all方法
| 方法的名称 | 方法的描述 | 方法的返回值 | col1集合 | col2集合 |
|---|---|---|---|---|
| boolean addAll(Collection<? extends E> c) | 大集合添加小集合 | col1添加成功之后返回true 则返回false | 发生改变 | 不发生改变 |
| boolean containsAll(Collection<?> c) | 大集合是否完全包含小集合 | col1集合完全包含col2集合则返回true否则返回false | 不发生改变 | 不发生改变 |
| boolean removeAll(Collection<?> c) | 大集合中删除小集合 | col1集合中元素发生改变 | col1与col2集合交集剩余的部分 | 不发生改变 |
| boolean retainAll(Collection<?> c) | 获取两个集合的交集 | col1与col2集合中元素完全相同返回false否则返回true | col1与col2的交集 | 不发生改变 |
3.3 集合的遍历方法:四种
①集合转数组:Object[] toArray()
底层原理:元素变量读取,遍历
//将集合转换数组
Object[] objects = col.toArray();
for (int i=0;i<objects.length;i++) {
System.out.println(objects[i]);
}
②集合转换为迭代器:Iterator
底层原理:位置地址读取,迭代
调用到的方法有:
boolean hasNext() 判断是否有下一个元素
E next() 返回迭代的下一个元素
void remove() 删除迭代器中的元素
//将集合转换为迭代器
Iterator iter = col.iterator();
while (iter.hasNext()) {
Object obj = iter.next();
System.out.println(obj);
}
③使用增强for循环遍历
底层原理:位置地址读取,迭代
语法:
for(集合或者数组的数据类型 变量名 :需要遍历的集合或者是数组) {
变量名==>就是集合中每一个元素
}
//实例化集合
Collection col = new ArrayList();
//使用增强for循环遍历
for (Object obj :col) {
System.out.println(obj);
}
3.4 List 接口
简介
A.有序的
B.索引(在列表中的位置)访问元素 有索引
C.允许重复的元素 集合中的元素可以重复
// (从ABC总结得:) ==> 特点: 有序 有索引 可重复
Tips: List是Collection的子类接口
实现类:ArrayList, LinkedList
带索引的方法
| 方法的名称 | 方法的描述 | |
|---|---|---|
| void add(int index, E element) | (增) | 在列表的指定位置插入指定元素 |
| E remove(int index) | (删) | 移除列表中指定位置的元素 |
| E set(int index, E element) | (改) | 用指定元素替换列表中指定位置的元素 |
| E get(int index) | (查) | 返回列表中指定位置的元素 |
带索引的遍历方法(集合的遍历方法)
底层原理:元素变量的,索引遍历
//实例化List类型的集合
List li = new ArrayList();
li.add("千锋刘亦菲");
li.add("千锋霞姐");
li.add("千锋瑶姐");
li.add("千锋婷姐");
//使用普通for循环来进行遍历
for (int i=0;i<li.size();i++) {
System.out.println(li.get(i));
}
浙公网安备 33010602011771号