Lambda表达式要点

1、Lambda表达式的使用位置

1)、带有单一抽象方法的接口-Runnable、Callable、Comparable

2)、方法接受声明于java.util.function包内的接口 -Predict、Function、Consumer、Supplier

2、lambda表达式和方法引用

lambda 表达式内可以使用方法引用,仅当该方法不修改 lambda表达式提供的参数。

若对参数有任何修改,则不能使用方法引用,需要完整的键入lambda表达式

3、lambda表达式内部引用资源

lambda内部可以使用静态、非静态和局部变量,这称为lambda内的变量捕获

4、lambda表达式也成闭包

lambda表达式在java中又称为闭包或匿名函数。

5、lambda表达式的编辑方式。

lambda方法在编译器内部被编译成私有方法,并派发invokedynamic字节码指令来进行调用。可以使用JDK中的javap工具来反编译class文件。使用javap -p或javap -c -v 命令来看一看lambda表达式生成的字节码。

private static java.lang.Object lambda$0(java.lang.String)

6、lambda表达式的限制

lambda表达式有个限制,只能引用final或final局部变量,不能在lambda内部修改定义在域外的变量。

另外,只是访问而不作修改是可以的。

原文地址:https://www.cnblogs.com/nangonghui/p/11694319.html