1,什么是Lambda表達(dá)式蝗碎?
Lambda Expression可以定義為允許用戶(hù)將方法作為參數(shù)傳遞的匿名函數(shù)喇澡。這有助于刪除大量的樣板代碼腕侄。Lambda函數(shù)沒(méi)有訪問(wèn)修飾符(私有钦铺,公共或受保護(hù))订雾,沒(méi)有返回類(lèi)型聲明和沒(méi)有名稱(chēng)。
Lambda表達(dá)式允許用戶(hù)將“函數(shù)”傳遞給代碼职抡。所以葬燎,與以前需要一整套的接口/抽象類(lèi)想必误甚,我們可以更容易地編寫(xiě)代碼缚甩。例如,假設(shè)我們的代碼具有一些復(fù)雜的循環(huán)/條件邏輯或工作流程窑邦。使用lambda表達(dá)式擅威,在那些有難度的地方,可以得到很好的解決冈钦。
2郊丛,函數(shù)的優(yōu)點(diǎn)?
1)直到Java 8列表和集合通常由客戶(hù)端代碼從集合中獲取迭代器來(lái)處理瞧筛,然后使用它迭代其元素并依次處理每個(gè)元素厉熟。如果要并行處理不同的元素,那么客戶(hù)代碼而不是集合的責(zé)任就是組織它较幌。通過(guò)Java 8揍瑟,可以更輕松地在多個(gè)線程上分發(fā)集合的處理。 集合現(xiàn)在可以在內(nèi)部組織自己的迭代乍炉,將并行化的責(zé)任從客戶(hù)端代碼轉(zhuǎn)移到庫(kù)代碼中绢片。
2)更少的代碼行。如上所述岛琼,用戶(hù)必須僅以聲明方式聲明要執(zhí)行的操作底循。 n > System.out.println(“Hello World”+ n); 所以用戶(hù)必須鍵入減少的代碼量。
3)使用Java 8 Lambda表達(dá)式可以實(shí)現(xiàn)更高的效率槐瑞。通過(guò)使用具有多核的CPU熙涤,用戶(hù)可以通過(guò)使用lambda并行處理集合來(lái)利用多核CPU。
3,解釋Java 8中Stream的中間操作與終端操作
流操作可以分為兩部分:
中間操作 -返回另一個(gè)Stream的中間操作祠挫,允許操作以查詢(xún)的形式連接猬错。
終端操作 -產(chǎn)生非流,結(jié)果如原始值茸歧,集合或根本沒(méi)有值倦炒。
4,Java 8中的可選項(xiàng)是什么软瞎?
Java 8引入了一個(gè)新的容器類(lèi)java.util.Optional 逢唤。如果該值可用,它將包裝一個(gè)值涤浇。如果該值不可用鳖藕,則應(yīng)返回空的可選項(xiàng)。因此它代表空值只锭,缺失值著恩。這個(gè)類(lèi)有各種實(shí)用方法,如isPresent()蜻展,它可以幫助用戶(hù)避免使用空值檢查喉誊。由于不直接返回值,而是返回包裝器對(duì)象纵顾,所以用戶(hù)可以避免空指針異常伍茄。
拓展學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)教程:【實(shí)訓(xùn)邦·Java】 Spring Boot+Vue/前后端分離/高并發(fā)/秒殺項(xiàng)目實(shí)戰(zhàn)
教程地址:https://ke.qq.com/course/447591?flowToken=1013796