java闭包的概念详解

java闭包的概念详解,第1张

java闭包的概念详解

我们在java中接触了不少的函数,有一种函数比较特殊,看起来和一般的英文函数名称不一样,在用法上是作用于变量的,这就是闭包的理解。在对于外部的访问上比较友好,能够进行互通。下面我们就闭包的概念、作用、应用场景、实例进行分别的讲解,一起来看具体内容。

1.概念

闭包(closure)是一种特殊的函数,它暗地里绑定了函数内部使用的所有变量。(另一种比较好的解释:闭包是绑定了外部环境变量的函数。)

2.作用

(1)让外部访问函数内部变量成为可能;

(2)局部变量会常驻在内存中;

(3)可以避免使用全局变量,防止全局变量污染;

(4)会造成内存泄漏(有一块内存空间被长期占用,而不被释放)

3.应用场景

绑定常量

延迟执行

4.实例

int factor = 3;
 
numbers.stream()
 .filter(e -> e % 2 == 0)
 .map(e -> e * factor)
 .collect(toList());

map 方法现在接受一个闭包,而不是一个 lambda 表达式。我们知道,这个闭包接受一个参数 e,但它也捕获并携带 factor 变量的状态。

以上就是java闭包的概念详解,对于一些绑定和延迟的需求 *** 作上比较好用,学完后对于闭包的内容已经有大致了解,再下次遇到类似情况时,可以选择闭包的方法。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3017498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存