1、反射
(1)动态获取信息以及动态调用对象方法的功能 称为 java语言 的反射机制。
(2)应用场景:eg:在应用开发过程中, 会遇到某个类成员变量 或者成员方法的属性是私有的,此时就可利用java的反射机制通过反射获取所需的私有成员或者方法。
(3)反射相关的类
->Class类
->Field类
->Method类
->Constructor类
2、枚举
->将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方法。
->优点:
将常量组织起来统一进行管理。
->自定义的枚举默认继承jdk的枚举类Enum。
->枚举类Enum中的一些方法:
values() //以数组形式返回枚举类型的所有成员
ordinal() //获取枚举成员的索引位置
valueOf() //将普通字符串转换为枚举实例
compardTo() //比较两个枚举成员在定义时的顺序
->枚举本身就是一个类,枚举的构造方法默认是私有的。且都继承java.lang.Enum。类外不能实例化对象的。
->枚举可以避免反射和序列化问题
3、Lambda表达式
(1)基本语法
(2)函数式接口
->一个接口 有 且只有一个 抽象方法。但可以有其他方法:静态方法,构造方法等。
eg:代码篇幅减少,可读性有点差
->语法:
(1)参数类型可以省略,如果需要省略,每个参数的类型都要省略。
(2)参数的小括号里面只有一个参数,那么小括号可以省略
(3) 如果方法体当中只有一句代码,那么大括号可以省略
(4)如果方法体中只有一条语句,其是
return
语句,那么大括号可以省略,且去掉
return
关键字。
(3)变量捕获