使用Lambda解决性能浪费问题。

本文通过实例展示了如何利用Java的lambda表达式改进日志代码,避免了字符串拼接的性能消耗,实现高效日志处理。

使用Lambda优化日志案例,解决性能浪费

**

这里我们简单的举一个日志案例来说明lambda这一功能

  • 首先我们创建一个未优化的日志案例**
public class Demo01 {
   public static void showLog(int level,String message){
       //对日志等级进行判断,为1则输出message
       if(level==1){
           System.out.println(message);
       }
   }

    public static void main(String[] args) {

        String ms0="hellow";
        String ms1=" are you";
        String ms2=" ok";

        showLog(1,ms0+ms1+ms2);

    }
}

显然,我们可以看出这段代码存在着性能浪费问题:即无论showLog方法中if是否判定成功,传递的message参数总是先拼接好的,存在浪费。

- 然后我们对日志案例进行优化:

首先创建一个函数式接口(使用lambda的必须条件):

@FunctionalInterface//此注解能确保接口是函数式接口
public interface Messagebulider {
    public abstract String buildmessage();
}

然后使用lambda配合函数式接口进行优化:

/*
  使用lambda优化案例:
     lambda的特点:延迟加载
     使用lambda的条件:必须存在函数式接口
*/
public class Demo02 {
    //创建showLog方法,参数传递Messagebuilder接口
    public static void showLog(int level,Messagebulider ms){
        if(level==1){
            System.out.println(ms.buildmessage());
        }
    }

    public static void main(String[] args) {
        String ms0="hellow";
        String ms1=" are you";
        String ms2=" ok";
        showLog(1,()->{
            return (ms0+ms1+ms2);
        });
    }
}

这样,只有日志等级满足1时,才会调用Messagebuilder中的方法来进行字符串的拼接,解决了性能浪费问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值