使用Lambda優化日誌案例

2021-10-03 15:42:43 字數 815 閱讀 2304

使用lambda必然需要乙個函式式介面:

package com.learn.demo02.lambda;

@functionalinte***ce

public inte***ce messagebuilder

然後對log 方法進行改造:

package com.learn.demo02.lambda;

/* 使用lambda優化日誌案例

lambda的特點:延遲載入

lambda的使用前提,必須存在函式式介面

*/public class demo02lambda

}public static void main(string args) );*/

/*使用lambda表示式作為引數傳遞,僅僅是把引數傳遞到showlog方法中

只有滿足條件,日誌的等級是1級

才會呼叫介面messagebuilder中的方法buildermessage

才會進行字串的拼接

如果條件不滿足,日誌的等級不是1級

那麼messagebuilder介面中的方法buildermessage也不會執行

所以拼接字串的**也不會執行

所以不會存在效能的浪費

*/showlog(1,()->);

}}

從結果中可以看出,在不符合級別要求的情況下,lambda將不會執行。從而達到節省效能的效果。

擴充套件:實際上使用內部類也可以達到同樣的效果,只是將**操作延遲到了另外乙個物件當中通過呼叫方法來完成。而是否呼叫其所在方法是在條件判斷之後才執行的。

效能浪費案例及使用Lambda優化

1.發現以下 存在的一些效能浪費的問題 package com.functionalinte ce.lambda 日誌案例 發現以下 存在的一些效能浪費的問題 呼叫showlog方法,傳遞的第二個引數是乙個拼接後的字串 先把字串拼接好,然後再呼叫showlog方法 showlog方法中如果傳遞的日誌...

Lambda優化程式

介面中有且僅有乙個抽象方法的介面叫做函式式介面 必須針對函式式介面使用 lambda具有延時性 我們的程式在執行時,有時會執行一些沒有必要的步驟,這些步驟增加了程式執行時間,降低了程式的執行效率。而lambda具有延時性,我們可以通過這種方法對程式進行優化 沒有被lambda優化的程式 public...

90 (案例)Lambda案例演示一

從匿名內部類到最簡化的lambda表示式逐漸演示 public inte ce demo02cookpublic class demo02 lambda方式 引數列表 一些重寫方法的 makecook lambda方式 繼續簡化 3 一些 如果 中的 只有一行,無論是否有返回值,都可以省略 retu...