? ? 函數(shù)式編程在并發(fā)和事件驅(qū)動(dòng)編程中優(yōu)勢明顯涕蚤。所以Java8引入了Lambda表達(dá)式的概念陪腌。
面向?qū)ο缶幊膛c函數(shù)式編程相結(jié)合烹骨,慢慢的會(huì)變成一種主流的開發(fā)模式。
籠統(tǒng)的說Java8的 Lambda 是java語言中用來傳遞代碼塊的一種語法糖,下面讓我們一起來了解一下Java 8 中的Lambda喧枷。
1 Lambda的語法
(傳入?yún)?shù))->{執(zhí)行語句}
例如:
? Arrays.sort(words,(String a,String b)->Integer.compare(a.length(),b.length()));
2 函數(shù)式接口
?對于只包含一個(gè)抽象方法的接口虹统,可以通過Lambda 表達(dá)式來創(chuàng)建該接口的對象,這種接口被稱為 函數(shù)式接口隧甚。如 Runnable 或者Comparator
3 方法引用
對象::實(shí)例方法
類::靜態(tài)方法
類::實(shí)例方法
4 變量作用域
Lambda 表達(dá)式中被引用的變量的值是不可以改變的车荔。
Lambda 表達(dá)式的方法體與嵌套代碼塊有相同的作用域。