栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中String方法的函数指针

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中String方法的函数指针

在JLS,第15.13.3描述方法引用的运行评估。

方法参考表达式评估的时间比lambda表达式(第15.27.4节)更复杂。
当方法引用表达式的::分隔符之前具有表达式(而不是类型)时,将立即对该子表达式求值。该 评价的结果被存储,直到相对应的功能的接口类型的方法被调用;
此时,结果将用作调用的目标参考
。这意味着::分隔符之前的表达式仅在程序遇到方法引用表达式时才被评估,并且不会在后续对功能接口类型的调用时被重新评估。

(加粗强调我的)

基本上

s
,将对方法引用的引用存储为以后执行。在这里,字符串
"HelloWorld"
被保存以供以后执行方法引用。因此,即使在方法引用的声明之后设置
s
null
,但在执行之前设置为
Function
,它仍将使用字符串
"HelloWorld"

设置为

null
不能保证垃圾收集器会收集它,也不能保证立即收集垃圾。

另外,在这里,方法参考中仍然有一个参考,因此这里根本不会收集垃圾。

最后,lambda表达式主体具有2种形式:一个表达式和一个语句块(可能带有return语句)。用

Function<Integer, String> f = t -> t + "";

那是一种表达。等效的block语句为:

Function<Integer, String> f = t -> { return t + "";};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号