JavaSE基础概述--Lambda表达式,方法引用,基础算法,异常以及序列化
Lambda表达式
作用:简化函数式接口的匿名内部类写法
函数式接口:有且仅有一个抽象方法的接口,该接口一般是被@FuncationalInterface注解检查
格式:(被重写方法的形参列表)->{被重写方法的方法体代码}
省略规则
1.参数类型可以省略
2.只有一个形参,()也可以省略
3.方法体代码只有一行,{}可以省略、分号可以省略、return必须省略
方法引用
作用: 简化Lambda表达式的写法
分类
静态方法引用
场景
1.Lambda表达式中只是在调用一个静态方法
2.前后参数一致
格式
类名::方法名
实例方法引用
场景
1.Lambda表达式中只是在调用一个实例方法
2.前后参数一致
格式
对象名::方法名
特定类型方法引用
场景
1.Lambda表达式中只是在调用一个实例方法
2.第一个参数作为方法的调用者,后面参数作为方法的实参传递
格式
类型名::方法名
构造器引用
场景
1.如果Lambda表达式只是在创建对象
2.前后参数一致
格式
类名::new
基础算法
概述:解决问题的过程和方法
冒泡排序:让元素两两之间进行对比,将最值放到数组最后
选择排序: 每轮选择一个当前元素,使用当前元素和后面的元素一一对比,将最值放到当前位置
二分查找:定义最小索引和最大索引,计算中间索引,使用查找元素和中间索引元素对比,如果大、小重新计算最小、最大、中间索引,再次对比,直到相等
递归:方法自己调用自己的一种形式
1.一定要有终止条件
2.总结递归的规律:大规模的问题可以拆分成小规模问题,大小规模问题的解决方式完全一致
异常
概述:程序出现的问题
两种处理异常方案
抛出异常
throws:在方法上声明异常,告诉调用者该方法可能出现异常,运行时异常可以不用声明,编译时异常必须声明
throw:创建一个异常对象,将其抛给调用者,调用者就必须处理该异常
捕获异常:try{ 可能出现的异常的代码 }catch(捕获异常类型 变量名){ 真正处理该异常的代码 }
序列化
作用:将java对象读写到文件中,读:反序列化 写:序列化
分类
字节序列化流
创建对象:new ObjectOutputStream(普通字节输出流)
常见方法:所有方法来自于字节输出流
特有方法: writeObject(任意对象)
字节反序列化流
创建对象:new ObjectinputStream(普通字节输入流)
常见方法:所有方法来自于字节输入流
特有方法: (任意对象)readObject()