更新時間:2020-04-07 10:59:57 來源:動力節點 瀏覽2297次
Java基礎學習:Java函數式編程教程,Java8最大的改動就是引入了函數式編程,可以將Lambda當作參數傳遞給函數。并且引入處理集合的streamAPI、接口的默認方法、避免空值異常的Optional<T>類。
Lambda
沒有使用Lambda之前我們要創建一個線程可以使用匿名類來實現,如果使用Lambda來實現:
可以看到Lambda表達式比之前的匿名類更簡潔,易讀。
Java8沒有直接定義一種函數類型,而時定義了函數式接口來應用Lambda表達式。理論上時只要時有一個抽象方法的接口都可以用來傳遞Lambda表達式,就像上面線程的例子中Runnable接口中就只有一個run方法。Java8中提供了幾個常用的函數式接口:Predicate<T>、Consumer<T>、Function<T,R>
Stream
為了更好地處理集合,并且可以很好的并行編程。Java8中提供了stream來簡化集合的操作,并且可以并行運行,很好地利用多核的CPU。
如果以前你想操作list的數據,你需要自己遍歷出來,并且做相應的操作,相當于式命令式的編程,現在你可以像自然語言一樣編程,比如過濾就使用filter,可以實現聲明式編程。stream中提供了很多方便的API來處理集合,以后在處理集合時多考慮下stream類,可以讓你代碼更優雅。同時可以使用parallelStream達到并行化,不用自己再考慮并行的問題。
默認方法
一般接口如果新增了方法,其子類必然需要增加其實現。但是Java8中需要為集合增加排序方法,其子類都需要改變。所以Java8引入的默認方法,這樣接口中就可以實現該方法,不用子類去實現。
接口中既然有默認方法,相當于Java中就有多繼承的概念,因為可以實現多個接口,如果多個接口都有默認方法,相當于就有了多繼承。這里需要注意多個接口中默認方法的沖突。
Optional
Optional類大家可以自己去研究下,在使用stream流的時候有很多都是返回Optional類,而非實際的對象,從而避免空指針的出現。
Java8可以說對于程序員來說改動是很大的,主要還是大家要適應函數式編程。習慣函數式編程后可以讓代碼更加簡潔、易讀。Stream流使用了很大函數式編程,讓集合的遍歷和處理邏輯分開,使大家能輕松做到并行編程,并且以聲明式的方式進行編程。本文只是給大家簡單介紹下Java8中的函數式編程,希望大家在下面自己用用,并且用到工程中去。
以上就是動力節點java培訓機構的小編針對“Java基礎學習:Java函數式編程教程”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習