注:日誌可以幫助我們快速定位問題,記錄執行過程中的情況,以便專案的監控和優化。
package com.wcy.demo1.functioninte***ce;
/* 函式介面:有且只有乙個抽象方法的介面
*/@functionalinte***ce
public inte***ce myfunctioninte***ce
package com.wcy.demo1.functioninte***ce;
public class myfunctioninte***ceimpl implements myfunctioninte***ce
}
package com.wcy.demo1.functioninte***ce;
/* 函式式介面的使用:一般可以作為方法的引數和返回值型別
*/public class demo
public static void main(string args)
});//呼叫show方法,方法的引數是乙個函式式介面,所以我們可以lambda表示式
show(()->);
//簡化lambda表示式
show(()-> system.out.println("使用lambda表示式重寫介面中的抽象方法"));
}}
效能浪費的日誌案例:
package com.wcy.demo2.lambda;
/* 日誌案例
*/public class demo01logger
}public static void main(string args)
}
發現以上**存在效能浪費的問題
1.呼叫showlog方法,傳遞的第二個引數是乙個拼接後的字串所以針對以上問題,使用lambda優化日誌2. 先把字串拼接好,再呼叫showlog方法
3.showlog方法中如果傳遞的日誌等級不是1級
4.那麼就不會是如此拼接後的字串
5.所以感覺字串就白拼接了,存在了浪費
lambda的特點:延遲載入
lambda的使用前提:必須是函式式介面
package com.wcy.demo2.lambda;
@functionalinte***ce
public inte***ce messagebuilder
package com.wcy.demo2.lambda;
/* 使用lambda優化日誌案例
*/public class demo02lambda
}public static void main(string args) );
}}
使用lambda表示式作為引數傳遞,僅僅是把引數傳遞到showlog方法中1.只有滿足條件,日誌的等級是1級時
才會呼叫介面messagebuilder中的方法buildermessage
才會進行字串的拼接
2.如果條件不滿足,日誌的等級不是一級
那麼messagebuilder中的方法buildermessage不會執行
所以拼接字串的**也不會執行
所以不會存在效能的浪費
函式式程式語言python 函式式程式設計
函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...
函式式程式設計
最近在看一些關於js方面的東東,除了些ajax的基本應用,還了解了些函式式程式設計 fp 的東東。雖然以前也玩過幾天lisp的,不過因為當時完全對fp的東西沒有概念,壓根就不知道原來這是list那一族最大的特性之一 另外我知道的還有個是gc,orz.光注意那些詭異的 表 去了。總結一下,傳統上認為f...
函式式程式設計
維基百科 函式式程式設計 英語 functional programming 或者函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將計算機運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當...