day.13笔记
一.Arrays数组的工具类
1.概念:此类是用来操作数组的各种方法
方法的名称 | 方法的描述 |
---|---|
public static void sort(int[] a) | 对指定的 int 型数组按数字升序进行排序。该排 序算法是一个经过调优的快速排序法 |
public static String toString(int[] a) | 返回指定数组内容的字符串表示形式 |
public static int binarySearch(byte[]a, byte key) | 查找指定元素在数组中的索引值 |
public static float[] copyOf(float[]original, int newLength) | 创建的一个新的数组 将旧的数组中的数据 赋值到新的数组中并且可以扩容 |
public static void fill(int[] a, int val) | 将指定的 int 值分配给指定 int 型数组的每个元素 |
二.try-catch-catch 捕获异常
1.语法:
try{
可能产生异常的代码
}catch(异常声明){
处理异常1的方式
}catch(异常声明){
处理异常2的方法
}
2.执行流程:
A.先执行可能发生异常的代码
B.如果发生异常,依次与catch里面的异常声明来进行匹配,如果可以执行,catch后面大括号里面的代码
C.如果发生异常,yucatch里面的异常声明不匹配,则jvm来进行处理,停止程序,
3.注意点:在jdk1.7以后,多个异常的声明可以通过使用|来进行链接,一般不能链接Exception
声明多个异常的时候,异常类的范围从小到大来进行声明
package com.qf.lt.oop01;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int [] arrys = new int[2];
System.out.println("输入第一个数:");
arrys[0] = input.nextInt();
System.out.println("输入第二个数:");
arrys[1] = input.nextInt();
try {
int number = arrys[0]/arrys[1];
int arry[]=null;
}catch (ArithmeticException e){
System.out.println("ArithmeticException异常");
}catch (Exception e){
System.out.println("异常");
}
}
}
三.try-catch-finally捕获异常
1.语法:
try{
可能发生异常的代码
}catch(异常的声明){
处理异常的方式
}finally{
最终执行的代码
}
2.执行流程:
A.执行可能发生异常的代码
B.依次与catch里面的异常声明进行匹配,如果可以匹配,执行catch后面大括号里面的代码,不能匹配最后执行finally代码。
C.依次与catch声明异常进行匹配,如果不匹配,则交给jvm来进行处理
3.说明:
A.不管发生不发生异常,finally中的代码都会执行
B.如果return,关键字不发生异常,先执行finally中的代码,在执行return;
C.杀死jvm才不会执行finally中的代码 System.exit(0);
package com.qf.lt.oop01;
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int [] arrys = new int[2];
System.out.println("输入第一个数:");
arrys[0] = input.nextInt();
System.out.println("输入第二个数:");
arrys[1] = input.nextInt();
try {
int number = arrys[0]/arrys[1];
return;
}catch (ArithmeticException e){
System.out.println("ArithmeticException异常");
}finally {
System.out.println("最后执行");
}
}
}
四.Throws
1.Throws 声明异常
2.使用场景:程序在运行期间,可能发生异常,不想自己进行处理,就可以声明异常,给调用者来进行处理
3.语法:在方法的参数列表的后面
访问修饰符 返回值类型 方法的名称(参数列表) throws 异常1 ,异常2{
方法体
retrun 返回值;
}
4.注意点:
声明异常是运行时异常以及其子类,调用者不处理,如果不是则需要调用者来进行处理
声明异常的范围越小越好,越精确更好,方便查找进行修改
五.Throw
1.Throw 抛出异常
2.语法:写在方法中
访问修饰符 返回值类型 方法的名称(参数列表){
throw new 异常类型
}
3.说明:
如果在方法中,抛出的异常是运行时异常的子类以及其本身。则不需要在方法上面进行异常的声明
如果在方法中,抛出不是运行时异常,要么进行异常的捕获,要么进行异常的声明
一般发生异常建议捕获
在实际开发中,一般Throw与Throws会进行搭配使用
六.继承中的异常
在继承中,子类重写方法时,声明的异常范围不能父类异常的范围,要么是其本身或是其子类
七.集合概念
1.集合:用于来存储数据的容器
2.数组和集合的区别:
不同点:
A.数组可以用来存放基本数据类型,也可以存放引用数据类型 集合只能存放引用数据类型
B.数组是固定的, 集合的长度不是固定的
相同点:都是存放数据的容器
3.集合的体系:
单列集合:集合中的一个数据是一个单独的单元
双列集合:集合中的数据是以组来进行存放的,以键值对来进行存放
单列集合:
双列集合:
八.Collection集合
1.概念:Collection层次结构中的跟接口 子接口Set和List
2.使用多态来进行实例化对象
3.展示实现类
4.常用方法:
方法名称 | 方法描述 |
---|---|
boolean add(E e) | 向列表的尾部添加指定的元素 |
void clear() | 从列表中移除所有元素 |
boolean contains(Object o) | 列表是否包含指定的元素 |
boolean isEmpty() | 列表中是否包含元素(集合中是否有元素) |
Iterator iterator() | 将集合转换为迭代器 |
boolean remove(Object o) | 删除集合中指定的元素 |
int size() | 返回集合中元素的个数 |
Object[] toArray() | 将集合转换为数组 |
代码:
package com.qf.lt.oop03;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class Test {
public static void main(String[] args) {
Collection col =new ArrayList();
col.add("张三");
col.add("李四");
col.add("王五");
System.out.println(col);
//获取集合里面元素长度
System.out.println(col.size());
//判断集合是否为空
System.out.println(col.isEmpty());
Object[] ob = col.toArray();
System.out.println(Arrays.toString(ob));
}
}
作业:
常见的异常:IOException:当发生某种 I/O 异常时,抛出此异常。
PrintException:类 PrintException 封装了与打印有关的错误状况,
RuntimeException: 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
SQLException:提供关于数据库访问错误或其他错误信息的异常。
空指针异常
异常处理方式:
1.异常的声明
try{
可能发生异常的代码
}catch(异常的声明){
异常处理的方法
}
2.异常的捕获