利用Lambda表达式延迟执行——避免性能浪费
2020-04-04 07:09
393 查看
package cn.zal.demo02_log; public class Demo01Log { public static void main(String[] args) { String s1="Java"; String s2="Hello"; String s3="World"; printLog(1, s1+s2+s3); //当level等于2时不能打印,但是字符串仍然会拼接,造成性能浪费。 printLog(2, s1+s2+s3); } public static void printLog(int level,String msg){ if(level==1){ System.out.println(msg); } } }
上面的代码可以看出,当main方法调用printLog打印msg信息时,只有当level=1时才能打印msg信息。
当main方法调用
printLog(2, s1+s2+s3);时,不能打印msg,但是s1,s2,s3仍然会拼接,从而造成性能浪费。
所以采用Lambda表达式延迟执行来解决这个问题。
package cn.zal.demo02_log; /*接口*/ public interface LogBuilder { String creatMessage(); }
package cn.zal.demo02_log; public class Demo02Log { public static void main(String[] args) { String s1="Java"; String s2="Hello"; String s3="World"; printLog(1,()->{ return s1+s2+s3; }); } public static void printLog(int level,LogBuilder logBuilder){ if(level==1){ String str=logBuilder.creatMessage(); System.out.println(str); } } }
上面代码的执行流程:首先执行main方法,当调用printLog方法时,将参数传给方法,当执行creatMessage()方法时,Lambda表达式才启用,进行字符串拼接,再打印。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 利用Oracle执行计划机制提高查询性能
- 利用pl/sql执行计划评估SQL语句的性能简析
- C++ windows多线程 线程描述了进程内代码的执行路径。进程中同时可以有多个线程在执行,为了使他们能够同时运行,操作系统为每个线程轮流分配CPU时间片,为了充分地利用CPU提高软件产品的性能,一
- 利用Oracle执行计划机制提高查询性能
- 递归性高或者逻辑简单、性能要求严格、维护人数多的字符串分析,尽量避免正则表达式
- 利用Lambda表达式简化命令者模式
- 利用lambda表达式正确关闭WCF连接
- 利用Delegator模式保护javascript程序的核心与提高执行性能 (转)
- oracle 执行计划的初试 利用Oracle执行计划机制提高查询性能
- 利用Lambda表达式、扩展方法以及泛型来为对象添加方法
- 利用pl/sql执行计划评估SQL语句的性能简析
- 使用lambda编程之延迟执行
- 利用pl/sql执行计划评估SQL语句的性能
- MySQL数据库性能优化-利用sql执行计划预先查看执行性能(五)
- C#中利用Expression表达式树进行多个Lambda表达式合并
- 利用pypy提高python脚本的执行速度及测试性能 推荐
- 利用Lambda表达式、扩展方法以及泛型来实现一个另类的AOP
- 每天学习一点.net(5) 利用匿名方法Lambda表达式(=>)实现委托
- 利用pl/sql执行计划评估SQL语句的性能简析
- 利用Oracle执行计划机制提高查询性能