您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java lambda表达式每次执行时是否在堆上创建一个对象?

Java lambda表达式每次执行时是否在堆上创建一个对象?

它是等效的但不相同。简而言之,如果lambda表达式未捕获值,则它将是单例,可在每次调用时重复使用。

行为没有完全指定。JVM被赋予了很大的自由来实现它。当前,Oracle的JVM为每个lambda表达式创建(至少)一个实例(即不在不同的相同表达式之间共享实例),但为所有不捕获值的表达式创建单例。

你可以阅读此答案获取更多详细信息。在那里,我不仅给出了更详细的描述,还提供了测试代码以观察当前行为。

java 2022/1/1 18:22:22 有609人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶