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、接口的靜態方法
接口用可以有靜態方法,但是違法了抽象原則