一课掌握Lambda表达式语法及作用简单入门1️⃣

通过三个方面讲解Lambda表达式

1  什么是Lambda表达式

2  Lambda表达式基础知识

3  Lambda表达式高级扩展

 分为三个层次去介绍一下Lambda表达式

重构结束后,我们针对性能问题进行讲解,

1 什么是Lambda表达式

2 Model Code As Data

3 功能接口设计及优化

4 为什么要使用Lambda表达式

Lambda表达式,也可以成为箭头函数,匿名函数,闭包

Lambda表达式体现的是轻量级函数方式编程思想

JDK8新特性

-> 左边操作参数,右侧是操作表达式

Model Code as Data 编码及数据,

尽可能轻量级的将代码封装为数据

解决方案: 接口&实现类 (匿名内部类)

存在问题: 语法冗余,this关键字,变量捕获,数据控制

项目问题: 功能问题的设计及其优化

 需求环境: 线程类的创建

 传统的匿名内部类实现

 quickstart构建maven项目

 创建好项目包后开始开发

传统模式下,本身只要创建线程就可以了

这时候传统模式有代码的冗余的。

这时候我们用jdk8新特性处理一下。

 new Thread(()->{

      System.out.println();

}).start

【不需要匿名内部类了】

jdk8才能够支持的。

我们等待项目重构完成。

 输出会提示 Lambda

 解决方案; Lambda表达式实现是为了优化

它不是解决为止问题的新技术

是为现有问题的语义化优化

需要根据需求考虑性能问题

3-1 函数式接口概述和定义

 函数式接口概念

 Lambda语法以及使用

 Lambda表达式运行原理

 函数式接口,就是Java类型系统中的接口

 函数式接口,是只包含一个接口方法的特殊接口

语义化检测注解:@FunctionalInterface

@FunctionalInterface

public interface IUserCredential{

      /**

        *通过用户账号,验证用户身份信息的接口

        */  

       String verifyUser(String username);

}

消息传输格式化转换接口

@FunctionalInterface

public interface IMessageFormar{

       String format(String message,String format);

}

这先定义好接口,下一步讲解使用规则。

public class UserCredentialImpl implements IUserCredential{

      @Override

       public String verifyUser(String username){

            分情况讨论一下

      }

}

对分类情况讨论进行测试。

default【不再规定的其中】 String getCredential(String username){

        分类讨论一下

}

default对所有子类增加的所有方法

与通过static修饰的方法不同。

static String isSuccess(String message){
       if(message!=null){

          return "true";

       }else{

         return "false";

       }

}

静态方法的方式,简单的场景模拟。

静态方法定义,也不会影响函数式接口。

 如果我们使用了

String toString();是可以通过的。

猜你喜欢

转载自www.cnblogs.com/EarlyBridVic/p/12081596.html