可以用static default來定義介面方法
用default來定義普通方法,這樣子類就不用強制覆寫這個方法了。
用static來定義靜態方法
專給lanmda使用的介面加上annotation @functionalinte***ce
其中只能有乙個方法
使用:(引數) -> 程式執行語句
(引數) ->
簡單返回:
(引數) -> 表示式;
方法引用與物件引用類似,為方法設定別名,分為四種形式:
引用靜態方法: 類名稱 ::static 方法名稱
引用某個物件的方法: 例項化物件 :: 普通方法
引用特定型別的方法: 特定類 :: 普通方法
引用構造方法: 類名稱 :: new
方法引用與lamda表示式相關聯,具體使用需要依賴lamda
方法的引用,四種介面的**示例完成。
4個內建函式式介面:
功能型介面-function startwith
@functionalinte***ce
public inte***ce function
供給型介面-supplier touppercase
@functionalinte***ce
public inte***ce supplier
斷言型介面-predicate equals
@functionalinte***ce
public inte***ce predicate
消費型介面-consumer
@functionalinte***ce system.out.println()
public inte***ce consumer
JDK1 8的新特性
jdk1.8之前的介面不可以有方法體,但從jdk1.8開始,介面中的方法可以帶有方法體為什麼要新增這個特性?介面就是為了定義乙個標準,這個標準要求所有的實現類實現這些抽象方法。但存在某些方法,所有的實現類 都是一樣的,索性就把這些 挪到介面中。使用的方法?通過default來修飾這個方法public...
JDK1 8 新特性(全)
hashmap資料結構 在jdk1.8中對hashmap等map集合的資料結構優化。hashmap資料結構的優化 知識點 1 原來的hashmap採用的資料結構是雜湊表 陣列 鍊錶 hashmap預設大小是16,乙個0 15索引的陣列,2 如何往裡面儲存元素 首先呼叫元素的hashcode 方法,計...
JDK1 8新特性 方法引用
方法引用是對lamdba的一種優化,因此,能用方法引用的地方,一定能用lamdba表示式。使用lamdba表示式,方法的引數必須是函式式介面,所以使用方法引用也要有乙個函式式介面。前提 物件已經存在,方法已經存在,就能使用了 前提 物件是已經存在的,成員方法也是已經存在的 定義乙個函式式介面 fun...