函数式接口的使用、性能浪费的日志案例
函数式接口的使用
函数式接口的使用:一般可以作为方法的参数和返回值使用
定义一个方法,参数使用函数式接口
案例:
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集
那么就不会如此拼接后的字符串
所以感觉字符串就白拼接了,存在资源浪费