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

2021-10-08 16:20:23 字數 1349 閱讀 7758

1.發現以下**存在的一些效能浪費的問題

package com.functionalinte***ce.lambda;

/* 日誌案例

發現以下**存在的一些效能浪費的問題

呼叫showlog方法,傳遞的第二個引數是乙個拼接後的字串

先把字串拼接好,然後再呼叫showlog方法

showlog方法中如果傳遞的日誌等級不是1級

那麼就不會是如此拼接後的字串

所以感覺字串就白拼接了,存在了浪費

*/public

class

demo01logger

}public

static

void

main

(string[

] args)

}

2. 使用lambda優化日誌案例

messagebuilder函式式介面

package com.functionalinte***ce.lambda;

@functionalinte***ce

public

inte***ce

messagebuilder

package com.functionalinte***ce.lambda;

/* 使用lambda優化日誌案例

lambda的特點:延遲載入

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

*/public

class

demo02lambda

}public

static

void

main

(string[

] args)

);*/

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

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

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

才會進行字串的拼接

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

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

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

所以不會存在效能的浪費

*/showlog(1

,()-

>);

}}

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

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

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

使用Lambda優化日誌案例

使用lambda必然需要乙個函式式介面 package com.learn.demo02.lambda functionalinte ce public inte ce messagebuilder然後對log 方法進行改造 package com.learn.demo02.lambda 使用lam...

awk 使用高階及使用案例

chen localhost in shell 18 36 13 awk v num 3 f passwd33 3333 注意 awk中呼叫定義的變數不需要加 chen localhost in shell 18 37 04 awk v num 3 f passwd01 23561.3.1.概述 1...

Android 廣播使用及案例

普通廣播也是如此操作 oncreate 註冊 private void doregisternetbc ondestroy 取消註冊 private void dounregisternetbc public class networkconnectchangedreceiver extends b...