Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程

Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程

長沙牛耳教育      2022-04-05 21:35:02     8

Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程,Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程,Java8最大的改動就是引入了函數(shù)式編程,可以將Lambda當(dāng)作參數(shù)傳遞給函數(shù)。并且引入處理集合

課程價(jià)格 請咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


    Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程,Java8最大的改動就是引入了函數(shù)式編程,可以將Lambda當(dāng)作參數(shù)傳遞給函數(shù)。并且引入處理集合的streamAPI、接口的默認(rèn)方法、避免空值異常的Optional<T>類。


    Lambda



    沒有使用Lambda之前我們要創(chuàng)建一個(gè)線程可以使用匿名類來實(shí)現(xiàn),如果使用Lambda來實(shí)現(xiàn):



    可以看到Lambda表達(dá)式比之前的匿名類更簡潔,易讀。


    Java8沒有直接定義一種函數(shù)類型,而時(shí)定義了函數(shù)式接口來應(yīng)用Lambda表達(dá)式。理論上時(shí)只要時(shí)有一個(gè)抽象方法的接口都可以用來傳遞Lambda表達(dá)式,就像上面線程的例子中Runnable接口中就只有一個(gè)run方法。Java8中提供了幾個(gè)常用的函數(shù)式接口:Predicate<T>、Consumer<T>、Function<T,R>


    Stream


    為了更好地處理集合,并且可以很好的并行編程。Java8中提供了stream來簡化集合的操作,并且可以并行運(yùn)行,很好地利用多核的CPU。



    如果以前你想操作list的數(shù)據(jù),你需要自己遍歷出來,并且做相應(yīng)的操作,相當(dāng)于式命令式的編程,現(xiàn)在你可以像自然語言一樣編程,比如過濾就使用filter,可以實(shí)現(xiàn)聲明式編程。stream中提供了很多方便的API來處理集合,以后在處理集合時(shí)多考慮下stream類,可以讓你代碼更優(yōu)雅。同時(shí)可以使用parallelStream達(dá)到并行化,不用自己再考慮并行的問題。


    默認(rèn)方法


    一般接口如果新增了方法,其子類必然需要增加其實(shí)現(xiàn)。但是Java8中需要為集合增加排序方法,其子類都需要改變。所以Java8引入的默認(rèn)方法,這樣接口中就可以實(shí)現(xiàn)該方法,不用子類去實(shí)現(xiàn)。



    接口中既然有默認(rèn)方法,相當(dāng)于Java中就有多繼承的概念,因?yàn)榭梢詫?shí)現(xiàn)多個(gè)接口,如果多個(gè)接口都有默認(rèn)方法,相當(dāng)于就有了多繼承。這里需要注意多個(gè)接口中默認(rèn)方法的沖突。


    Optional


    Optional類大家可以自己去研究下,在使用stream流的時(shí)候有很多都是返回Optional類,而非實(shí)際的對象,從而避免空指針的出現(xiàn)。



    Java8可以說對于程序員來說改動是很大的,主要還是大家要適應(yīng)函數(shù)式編程。習(xí)慣函數(shù)式編程后可以讓代碼更加簡潔、易讀。Stream流使用了很大函數(shù)式編程,讓集合的遍歷和處理邏輯分開,使大家能輕松做到并行編程,并且以聲明式的方式進(jìn)行編程。本文只是給大家簡單介紹下Java8中的函數(shù)式編程,希望大家在下面自己用用,并且用到工程中去。


  以上就是長沙牛耳教育java培訓(xùn)機(jī)構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):Java函數(shù)式編程教程”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)


Java基礎(chǔ)學(xué)習(xí)

培訓(xùn)啦提醒您:交易時(shí)請核實(shí)對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。