Java語言新特性
Java8
Lambda 表達(dá)式
</br>Lambda表達(dá)式(也叫做閉包)是Java 8中最大的也是期待已久的變化放祟。它允許我們將一個(gè)函數(shù)當(dāng)作方法的參數(shù)(傳遞函數(shù)),可以用于替代匿名內(nèi)部類磷箕。-
函數(shù)式接口(@FunctionalInterface)
</br>函數(shù)式接口就是一個(gè)有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口蒿柳。函數(shù)式接口可以被隱式轉(zhuǎn)換為 lambda 表達(dá)式饶套。加不加 @FunctionalInterface 對(duì)于接口是不是函數(shù)式接口沒有影響,該注解只是提醒編譯器去檢查該接口是否僅包含一個(gè)抽象方法.函數(shù)式接口里允許定義默認(rèn)方法及靜態(tài)方法垒探。JDK 1.8 之前已有的函數(shù)式接口:
java.lang.Runnable</br>
java.util.concurrent.Callable</br>
java.security.PrivilegedAction</br>
java.util.Comparator</br>
java.io.FileFilter</br>
java.nio.file.PathMatcher</br>
java.lang.reflect.InvocationHandler</br>
java.beans.PropertyChangeListener</br>
java.awt.event.ActionListener</br>
javax.swing.event.ChangeListener</br>JDK 1.8 新增加的函數(shù)接口:
java.util.function
-
方法引用
</br>方法引用通過方法的名字來指向一個(gè)方法凤跑。方法引用可以使語言的構(gòu)造更緊湊簡(jiǎn)潔,減少冗余代碼叛复。方法引用使用一對(duì)冒號(hào) ::構(gòu)造器引用:它的語法是Class::new仔引,或者更一般的Class< T >::new
靜態(tài)方法引用:它的語法是Class::static_method
特定類的任意對(duì)象的方法引用:它的語法是Class::method
特定對(duì)象的方法引用:它的語法是instance::method
-
默認(rèn)方法就是接口可以有實(shí)現(xiàn)方法,而且不需要實(shí)現(xiàn)類去實(shí)現(xiàn)其方法.
當(dāng)需要修改接口時(shí)候褐奥,需要修改全部實(shí)現(xiàn)該接口的類咖耘,所以引進(jìn)的默認(rèn)方法的目的是為了解決接口的修改與現(xiàn)有的實(shí)現(xiàn)不兼容的問題。
-
流操作 操作符類似rxjava
-
Optional 是個(gè)容器:它可以保存類型T的值撬码,或者僅僅保存null儿倒。Optional提供很多有用的方法,這樣我們就不用顯式進(jìn)行空值檢測(cè)呜笑。Optional 類的引入很好的解決空指針異常