JAVA8新特性的一些理解

什么是闭包

闭包就是能够读取其他函数内部变量的函数。

所以闭包可以理解成"定义在一个函数内部的函数"。

在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

什么是函数式接口

只有一个抽象方法的接口,就是函数式接口

什么是Lambda表达式

是一个闭包,赋予JAVA语言一个能力:将方法作为作为参数传递给另外一个方法。

Lamda表达式是函数式接口的快捷实现方式。传统的复杂的实现方式如:匿名内部类。

什么是方法引用

是Lambda的另外一种表现形式或者叫更简单的写法。

适用于这种场景:某些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作。这时候使用方法引用更简洁。

方法引用可以用等价的Lambda表达式实现。如:

类型语法对应的Lambda表达式
静态方法引用 类名::staticMethod (args) -> 类名.staticMethod(args)
实例方法引用 inst::instMethod (args) -> inst.instMethod(args)
对象方法引用 类名::instMethod (inst,args) -> 类名.instMethod(args)
构建方法引用 类名::new (args) -> new 类名(args)
原文地址:https://www.cnblogs.com/wangzhen3798/p/15250245.html