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表达式:编译后不会有多余的字节码文件,对应的字节码文件在运行时动态生成
  • 相关阅读:
    POJ3259 Wormholes
    leetCode-Plus One
    leetCode-Pascal's Triangle
    leetCode-Longest Continuous Increasing Subsequence
    leetCode-Missing Number
    leetCode-Maximum Product of Three Numbers
    leetCode-Image Smoother
    leetCode-Contains Duplicate
    机器学习实战笔记-使用Apriori算法进行关联分析
    leetCode-Degree of an Array
  • 原文地址:https://www.cnblogs.com/Kinghao0319/p/13697239.html
Copyright © 2011-2022 走看看