Java 在2005 年推出 Annotation 之後,就沒有重大的更新功能,但是在這幾年語言的競爭下,Java為了不落後其他語言,終於Java 8 導入Lambda,讓 Java 平台正式支援 functional programming 。Lambda表達式規範在JSR 335
Lambda帶來JAVA有這些好處 :
1. 簡化程式碼,當需要一个函数,不需要特地去命名一个函数名 稱, 也就是匿名函式
2. 並行程式開發Lambda 重點學習 :
- Lambda 表示可以當作為code
- Lambda表示可以轉換成函式介面
- 需要學會解決方法與函式介面所造成的衝突
- 閉包表示
- Lambda 表示可以當作為code
Lambda語法結構 :
(input) -> {body} input 代表方法的引數,body程式碼主體
(1) ( )表示輸入沒有引數,程式敘述印出AAA,如果只有一行不需要用{}
() -> System.out.print("AAAA")(2) (int a)->{} 用來輸入參數
final IntConsumer intConsumer = (int a) -> System.out.println("input :" + a); intConsumer.accept(10);(3) (int a, int b )->{ return a +b } 回傳值使用
IntBinaryOperator intBinaryOperator = (int a, int b) -> { return a + b; }; int sum = intBinaryOperator.applyAsInt(1,2) ; System.out.print(sum);
(4)(int a, int b )->{ ....... } 一行以上需要用{}(int a, int b) -> { System.out.print(a); System.out.print(b); };
Lambda執行緒的應用 在Java 8以前版本使用執行緒需要寫很多行的程式碼;但是Java 8使用Lambda只需要一行就可以完成工作。
*一般傳統的寫法,需要只少要三行完成
Runnable runnable1 = new Runnable() { @Override public void run() { System.out.print("執行一般寫法執行緒"); } }; runnable1.run();*使用Lambda可以利用匿名函式來取代介面,寫少程式碼,在效率上,程式碼執行不會建立new新物件,直接執行主程式的部分。
Runnable runnable2 = ()->System.out.print("執行Lambda 執行緒"); runnable2.run();
留言
張貼留言