
拉烏爾-加布裏埃爾·烏爾瑪 馬里奧·富斯科 艾倫·米克羅夫特
本書全面介紹了Java 8、9、10版本的新特性,包括Lambda表達式、方法引用、流、默認方法、Optional、CompletableFuture以及新的日期和時間API,是程序員瞭解Java新特性的經典指南。全書共分六個部分:基礎知識、使用流進行函數式數據處理、使用流和Lambda進行高效編程、無所不在的Java、提升Java的併發性、函數式編程以及Java未來的演進。
講java8後新特性的書很多,但能讓人知其然又知其所以然,又能深入淺出的,這是我見過最好的一本。順便說一下,現在的中文書名有誤導性,應該翻譯爲《現代Java實戰》,因爲這本書並不講java基礎,只講新特性。
第二章就開始講流,函數式編程,Java語言在這塊終於有點進步了。這幾年新出的編程語言都支持甚至主推函數式編程了,比較典型的就是Swift和Kotlin。看到filter、map、limit之類的函數,還是很熟悉的。雖然在Swift和Kotlin中用過了很多函數式編程的東西,但是這本書裏面講流的時候引入的很多新概念還是很有啓發的。很不錯的一本書。 這本書跟傳統的講Java的書區別還是很大的,不適合新手。
就算老開發,但是不自律的都應該去看看
- 基礎知識 - 使用流進行函數式數據處理 - 使用流和lambda進行高效編程 - 無處不在的java - 提升java併發性 - 函數式編程/java未來的演進
雖然這書名有點誤導人,但是Lambda表達式講的是真不錯👍。
近幾年java新增了許多新特性,大部分的特性都是爲了java支持函數式編程,對比面向對象的命令式編程,函數式編程只需要以聲明式的告訴程序你要做什麼,而不是如何去做,這是一種更高級的抽象,指導程序員更專注於業務的邏輯。在JAVA裏,將行爲參數化,抽象行爲,給行爲建模,就是在java裏對函數式編程實踐,從而引申出了集合數據處理流,異步api,反應式流,只需要將聲明式的告訴程序做什麼,將如何去做封裝,抽象,建模。所以未來的基於java編程會更加的模塊化。
Java8提供了的Lambda表達式和Stream API。使用Lambda表達式和Stream API可以讓我們編寫得代碼更加清晰、更靈活。 ❏ Lambda表達式可以理解爲一種匿名函數:它沒有名稱,但有參數列表、函數主體、返回類型,可能還有一個可以拋出的異常的列表。 ❏ Lambda表達式讓你可以簡潔地傳遞代碼。 ❏ 函數式接口就是僅僅聲明瞭一個抽象方法的接口。 只有在接受函數式接口的地方纔可以使用Lambda表達式。 ❏ Lambda表達式允許你直接內聯,爲函數式接口的抽象方法提供實現,並且將整個表達式作爲函數式接口的一個實例。
java8算是將落後十多年的技術債還上了,c#2.0時代就有的東西當年就是要裝大佬死都說lamda和泛型沒用,10幾年後不還是得抄回去。不過有了這這三架馬車java終於有些看頭了,之前可以實現語意化編程和併發編程。代碼也不用像以前那麼噁心了。
是本非常棒的書,看了這本書並適當實現後,我從原來完全不熟悉的流式操作,到現在經常琢磨如何使用流式操作讓代碼更具可讀性。optional部分對於optional意義的解讀更是讓我醍醐灌頂,可以說這本書給我的Java生涯帶來了巨大的思想轉變。 後尾技巧部分還差一點點,最近心思有點亂,始終沒能靜下心來讀完。晚點再次複習時會把他讀完的!
對比之下,還是喜歡java8 實戰。這第二版改名了把java9的內容都加進來,二者混在一起不是很習慣……