java 8 lambda表达式

一块钱的讲解视频

一、lambda 表达式优点:1.函数式编程 2.参数类型自动推断 3.代码少、简洁

       Lambda表达式是对象,是一个函数式接口的实例

       语法 : LambdaParameters(参数)-> LambdaBody(实现逻辑)

二、lambda表达式的使用场景:

        任何有函数式接口的地方。

              函数式接口:有且仅有一个抽象方法(与Object类中方法同名的不算),但是可以有多个非抽象方法的接口。

              标志函数式接口的注解@FunctionInterface,如果为非函数式接口会报错。

                    jdk 1.8之前的函数式接口:

                             java.lang.Runnable                  //线程
                             java.util.concurrent.Callable       //线程
                             java.security.PrivilegedAction    
                             java.util.Comparator                 //排序
                             java.io.FileFilter        
                             java.nio.file.PathMatcher
                             java.lang.reflect.InvocationHandler
                             java.beans.PropertyChangeListener
                             java.awt.event.ActionListener
                             javax.swing.event.ChangeListener

                  jdk 1.8新增的函数式接口(java.util.function下的接口)(较多结合Stream使用)

                             Suppliter 代表一个输出
                             Consumer  代表一个输入
                             BiConsumer代表两个输入
                             Function  代表一个输入一个输出(一般输入和输出是不同类型的)
                             UnaryOperator 代表一个输入一个输出(输入和输出是相同类型的)
                             BiFunction 代表两个输入一个输出(一般类型不同)
                             BinaryOperator 代表两个输入一个输出(类型相同)

       java 8 lambda表达式
三、lambda表达式简写规则

       java 8 lambda表达式

       java 8 lambda表达式

       java 8 lambda表达式

       java 8 lambda表达式

       java 8 lambda表达式