1,接口中默认方法和静态方法
1.1默认方法又称扩展方法,需要在方法前使用default关键字记性修饰
必须通过接口的实现类的实例进行访问,既:对象名.默认方法名()
1.2 静态方法又称为类方法,需要在方法前使用static 关键字进行修饰
静态方法既可以通过接口名进行访问,也可以通过接口时实现类的实例进行访问。建议使用:接口名.静态方法名()
2,Lambda表达式
2.1多参数,多语句的Lambda表达式
(int x,int y)->{
System.out.println(y+"");
System.out.peintln(y+"");
return x+y;
}
2.2省略参数类型的Lanbda表达式
(x, y)->{
System.out.println(y+"");
System.out.peintln(y+"");
return x+y;
}
2.3,省略{}和return关键字的Lambda表达式
(x,y)-> x+y
2.4只有一个参数的Lambda
参数名 ->{方法体}
2.5 只有一条语句和一个参数的Lambda表达式
参数名 -> 方法体
2.6 没有参数的Lambda表达式
()->方法体
3,函数式接口
函数式接口本质上是一个仅有一个抽象方法的普通接口
@FuncationalInterface
public interface 接口名{
//只有一个抽象方法
}
Lambda 表达式只能为函数式接口创建对象,既Lambda表达式只能实现具有一个抽象方法的接口,且该接口必须由@FuncationalInterface注释修饰的接口
4,::方法的引用
在java 8 中可以使用双冒号操作符::来简化Lambda表达式方法引用。
4.1 容器::方法名
::方法引用由三部分组成:
左边是容器,可以是类名或实例名
中间是::操作符
右边是相应的方法名,注意方法名后没有小括号
4.2 ::方法引用可以是静态方法,实例方法以及构造方法,引用不同的方法时书写的格式也不同
4.2.1 静态方法 类名::静态方法名
4.2.2 实例方法 对象::实例方法名
4.2.23 构造方法 类名::new