亚洲人成图片小说网站,亚洲AV无码1区2区久久,亚洲一区二区三区日本久久九,国产精品 高清 尿 小便 嘘嘘,精品国产一区二区三区免费

網(wǎng)站開(kāi)發(fā) APP開(kāi)發(fā) 小程序開(kāi)發(fā) SEO優(yōu)化 公司新聞

java8都很久了來(lái)學(xué)學(xué)java8的新特性吧

2018-08-03 10:01:09
924

  jdk8的新特性其實(shí)對代碼的簡(jiǎn)化開(kāi)發(fā)還是很大幫助的,如果你能正確的應用再自己的代碼里面,可以讓我們開(kāi)發(fā)的代碼變得很簡(jiǎn)潔整齊。今天我們就一起來(lái)學(xué)習一下吧。

  一.Lambda表達式

  Lambda 允許把函數作為一個(gè)方法的參數(函數作為參數傳遞進(jìn)方法中)??梢允勾a變的更加簡(jiǎn)潔緊湊?;镜慕Y構是 (參數)->{代碼塊}注意:

 ?、賲殿?lèi)型可省略,編譯器可以自己推斷

 ?、谌绻挥幸粋€(gè)參數,圓括號可以省略

 ?、鄞a塊如果只是一行代碼,大括號也可以省略

 ?、苋绻a塊是一行,且是有結果的表達式,return可以省略

  事實(shí)上,把Lambda表達式可以看做是匿名內部類(lèi)的一種簡(jiǎn)寫(xiě)方式。當然,前提是這個(gè)匿名內部類(lèi)對應的必須是接口,而且接口中必須只有一個(gè)函數!Lambda表達式就是直接編寫(xiě)函數的:參數列表、代碼體、返回值等信息,用函數來(lái)代替完整的匿名內部類(lèi)!

  二.接口的默認方法和靜態(tài)方法

  默認方法使得開(kāi)發(fā)者可以在 不破壞二進(jìn)制兼容性的前提下,往現存接口中添加新的方法,即不強制那些實(shí)現了該接口的類(lèi)也同時(shí)實(shí)現這個(gè)新加的方法。

  默認方法和抽象方法之間的區別在于抽象方法需要實(shí)現,而默認方法不需要。接口提供的默認方法會(huì )被接口的實(shí)現類(lèi)繼承或者覆寫(xiě).

  接口里面也可以通過(guò)staitc定義默認方法。接口里面增加默認方法和靜態(tài)方法,可以避免子類(lèi)里面重復的復寫(xiě)父類(lèi)公共方法的問(wèn)題。

  三.Streams的操作

  即使沒(méi)有 Stream API,我們依然能夠通過(guò)完成需求,但無(wú)法做到如此簡(jiǎn)潔、清晰。

  因此熟悉使用Streams api對我們代碼簡(jiǎn)化開(kāi)發(fā)非常重要。

  Stream的使用分為兩種類(lèi)型:

  1)Intermediate,一個(gè)Stream可以調用0到多個(gè)Intermediate類(lèi)型操作,每次調用會(huì )對Stream做一定的處理,返回一個(gè)新的Stream,這類(lèi)操作都是惰性化的(lazy),就是說(shuō),并沒(méi)有真正開(kāi)始流的遍歷。常用操作:map (mapToInt, flatMap 等)、 filter、 distinctsorted、peek、limit、skip、parallel

  2)Terminal一個(gè)Stream只能執行一次terminal 操作,而且只能是最后一個(gè)操作,執行terminal操作之后,Stream就被消費掉了,并且產(chǎn)生一個(gè)結果。常用操作:forEach、forEachOrdered、toArray、reduce、collect、min、max、count、anyMatch、 allMatch、noneMatch、findFirst、findAny。這些方法的意思都很明了,都是面向函數式的編程,大家可以下去自己嘗試一下,處理集合數據可以方便很多。

?