1、方法使用
类::静态方法
对象::实例方法
类::实例方法
System.out::println
Math::pow 等同 (x,y)->Math.pow(x,y)
this::equals->this.equals(x)
2、构造器使用
Person:new
3、变量作用域
在lambda表达式中访问其他的变量,lambda表达式可以自动获取值。其实lambda表达式就是闭包
java8之前只能访问final的局部变量,java8可以访问任何值不发生变化的变量(这个变量初始化后,不会赋予一个新值的变量)
4、默认方法
java8接口可以默认的实现方法
interface Person{
long getId();
default String getName(){return ""}
}
如果一个java类实现两个接口,并且两个接口有相同的默认方法,这样会导致冲突,必须覆盖解决冲突
如果一个java类继承一个类和实现一个接口,这个类的方法和接口的默认方法相同,不会冲突,java类使用类的方法(类优先)
5、接口的静态方法
接口用可以有静态方法,但是违法了抽象原则