函数式接口的使用、性能浪费的日志案例

函数式接口的使用

函数式接口的使用:一般可以作为方法的参数和返回值使用

定义一个方法,参数使用函数式接口

案例:

  

    public static  void show(MyFun myFun){
myFun.method();
}

public static void main(String[] args) {
// 调用show方法,方法的参数是一个接口,可以传递接了的实现类对象
show(new MyFunImpl());
// 调用show方法.方法的参数是一个接口,所以我们可以传递接口的匿名内部类
show(new MyFun() {
@Override
public void method() {
System.out.println("使用匿名匿名内部类,重写接口中的抽象方法");
}

@Override
public void method2() {
System.out.println("使用匿名匿名内部类,重写接口中的抽象方法");
}
});
}
}

性能浪费的日志案例

有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费,而Lambda表达式是研制执行的,这正好作为解决方案,提升性能

写一个日志案例:

  

    //       定义一个方法,根据日志的级别,显示日志的方法

public static void ShowLog(int level, String message) {
// 对日志的级别进行判断.如果是1级别,那么就输出日志信息
if (level == 1) {
System.out.println(message);
}
}

public static void main(String[] args) {
// 定义三个日志
String msg1 ="hello";
String msg2 ="World";
String msg3 ="java";
ShowLog(1,msg1+msg2+msg3);
}
}

发现以上代码问题:

  调用方法,传递的第二个参数是一个拼接后的字符串

  先把字符串拼接好,然后在调用方法

  方法中如果传递的日志等级不是1集

  那么就不会如此拼接后的字符串

  所以感觉字符串就白拼接了,存在资源浪费

 

posted @ 2022-07-22 15:11  一位程序袁  阅读(53)  评论(0编辑  收藏  举报