JAVA8函数式编程 笔记-函数和Lambda表达式

参考并建议阅读《Java8函数式编程》 /《java 8 实战》
----------------------------------------------------------------------------------------------------------------------------------

为什么要进行函数式编程?

  对于面向对象的编程来说,抽象的概念并不陌生。面向对象是对数据进行抽象,而函数式编程是对行为进行抽象。这种代码更多地表达了业务逻辑的意图,而不是它的实现机制。
   一般情况采用“要做什么”风格的编程通常被称为声明式编程,用这种方式编写的代码更加接近问题的陈述了。函数式编程具体实践了声明式编程(“只需要使用不互相影响的表达式,描述想要做什么,由系统来选择如何实现”)和无副作用计算。
      这样代码易读,易维护,  更可靠, 更不易出错,让我们可以实现更加健壮的程序,还不会有任何的副作用。

什么是函数式编程?

      其核心思想是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。
      高阶函数:满足下面任何一个要求的函数
       1)接受至少一个函数作为参数,
       2)返回结果是一个函数。

Lambda表达式

     它可以让你很简洁地表示一个行为或传递代码。可以把Lambda表达式看作匿名功能,基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。
  • 匿名-----是因为它不像普通的方法那样有一个明确的名称
  • 函数-----是因为Lamdba函数不像方法那样属于某个特定类。但和方法一样,Lambda有参数列表,函数主体,返回类型,还可能有可以抛出的异常列表。
  • 传递-----Lambda表达式可以作为参数传递给方法或者存储在变量中。
  • 简洁-----写很多模板代码。
    Lambda表达式有三个部分:参数列表,箭头,Lambda主体。

函数接口

 Lambda表达式本身的类型,函数接口是只有一个抽象方法的接口,接口中单一方法的命名并不重要,只要方法签名和Lambda表达式的类型匹配即可。
     用函数式接口可以干什么?Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例。     JAVA8函数式编程 笔记-函数和Lambda表达式
下面是java8常用的函数式接口 JAVA8函数式编程 笔记-函数和Lambda表达式