美文网首页
Java Lambda表达式引用局部变量的原理

Java Lambda表达式引用局部变量的原理

作者: qiyubing | 来源:发表于2020-10-19 21:56 被阅读0次
    • 规则1

    Java中变量分为:基本类型变量和引用类型变量

    • 规则2

    Java方法传参只有值传递,没有引用传递,传递的值是若是基本类型变量,则复制基本类型,若为引用类型变量,则传递对象的内存地址。

    • 规则3

    lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量,也就是说本地变量在被创建后不得被重新赋值。
    lambda表达式是一个静态的概念,假如改变后可分为以下两种情况:

    1. 若将外部基本类型变量改变,则无法保证lambda表达式使用的值一致。
    2. 若将外部引用类型变量指向其他内存地址,由于外部的变量是从lambda构造器传入的,根据规则2,方法传入的是实际对象的内存地址而不是引用,则在内部或外部改变引用指向的地址后,无法保证lambda表达式内外使用的对象一致。

    综上,为了保证数据的一致性,所以用final或实际的最终变量来限制内外引用变量指向的内存地址一致。

    感谢您的阅读,本文已同步到我的个人博客,您的关注是对我最大的鼓励!

    相关文章

      网友评论

          本文标题:Java Lambda表达式引用局部变量的原理

          本文链接:https://www.haomeiwen.com/subject/ruwlmktx.html