• Java Lambda表达式


    1. Lambda表达式强调函数式编程思想:“强调做什么,而不是以什么形式去做”;格式如下:

    (形式参数) -> {代码块}

    2. 使用Lambda必须要有接口,并且要求接口中有且只有一个抽象方法。

    3. 使用Lambda必须有上下文环境,才能推导出Lambda对应的接口。

    () -> System.out.println("Lambda");//直接写,错误,无上下文环境就没意义
    Runnable r = () -> System.out.println("Lambda");//赋值给一个接口,正确,有上下文
    new Thread(r).start();
    new Thread(()-> System.out.println("Lambda")).start();//作为调用方法参数传入,也可以

    4. Lambda表达式和匿名内部类的区别

    (1)所需类型不同

    • 匿名内部类:可以是接口,抽象类,也可以是具体类
    • Lambda表达式:只能是接口

    (2)使用限制不同

    • 接口中只有一个抽象方法,可以用Lambda表达式也可以使用匿名内部类
    • 接口中有多个抽象方法,只能用匿名内部类(重写多个抽象方法)

    (3)实现原理不同

    • 匿名内部类:编译之后,产生一个单独的.class字节码文件
    • Lambda表达式:编译后不会有多余的字节码文件,对应的字节码文件在运行时动态生成
  • 相关阅读:
    windows2000/xp运行命令全集
    IP数据包的校验和算法C#版(原)
    做系统清理的批处理
    Combox用ValueMember 之后再添加一项
    安装部署基础——Windows Application
    文件编码
    Left/right join 和inner join 区别
    应用Url重写时CSS引用问题
    数据绑定控件单选框
    算法题:水杯倒水的问题
  • 原文地址:https://www.cnblogs.com/Kinghao0319/p/13697239.html
Copyright © 2020-2023  润新知