zoukankan      html  css  js  c++  java
  • 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表达式:编译后不会有多余的字节码文件,对应的字节码文件在运行时动态生成
  • 相关阅读:
    Atcoder Beginner Contest075 翻车记
    bzoj1972 猪国杀 大♂模拟
    10月9-11日连续大翻车实录
    10月8日翻车实录
    10月7日考试翻车实录
    四月は君の嘘?人生は君の嘘?
    NOIP模拟 gcd 数学
    NOIP模拟 water 最小生成树
    NOIP模拟 mine DP
    bzoj2064 分裂 状压DP
  • 原文地址:https://www.cnblogs.com/Kinghao0319/p/13697239.html
Copyright © 2011-2022 走看看