一、匿名内部类
为了防止过多,没有本身作用的类出现,就只是为了重写一些抽象方法,可以定义为匿名内 部类
1.Lambda表达式
可以简化匿名内部类,前提: 函数式接口
2.函数式接口
只有一个抽象方法的接口
强制检查函数式接口: @FunctionalInterface 语法:
() -> {}
() : 匹配要重写的抽象方法的参数列表
-> : lambda符号,箭头符号,具有上下文推到的作用
{} : 匹配要重写的抽象方法的方法体
二、Arrays
用来操作数组的工具类,是一个静态工厂
1. 数组索引越界异常
ArrayIndexOutOfBoundsException 索引超出范围|为负数
2.数组长度负数异常
NegativeArraySizeException
3. 空指针异常
NullPointerException
三、二维数组:
1.数组的声明
数据类型 数组名[][];
数据类型[] 数组名[];
2.数组的初始化
1)动态初始化:先创建后赋值
数据类型[][] 数组名 = new 数据类型[一维的长度][二维的长度];
数据类型[][] 数组名 = new 数据类型[一维的长度][];
2)静态初始化:创建的同时赋值
数据类型[][] 数组名 = new 数据类型[][]{{1,2,3},{1,2},{1},{2,2}...};
数据类型[][] 数组名 = {{1,2,3},{1,2},{1},{2,2}...};
四、异常:
1.异常结构图
Error: 一般是由虚拟机生成并脱出的,程序不关注
Exception : 异常,一旦出现异常,如果不解决,程序无法继续向下执行
检查时异常|编译时异常:编译期出现的异常,如果不处理,程序无法运行
运行时异常: 出现在程序运行期间,可以通过程序的健壮性处理
2.常见的运行时异常
1)类型转换异常
2)空指针异常
3)数组索引越界异常
4)数组长度负数异常
5)数学异常 ArithmeticException
6)转换异常 NumberFormatException
3.异常处理
1)throw : 制造异常
2)处理异常的方式: throws : 抛出异常 try..catch :捕获异常
3)结构: try { 可能会出现异常的代码;