- 规则1
Java中变量分为:基本类型变量和引用类型变量
- 规则2
Java方法传参只有值传递,没有引用传递,传递的值是若是基本类型变量,则复制基本类型,若为引用类型变量,则传递对象的内存地址。
- 规则3
lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量,也就是说本地变量在被创建后不得被重新赋值。
lambda表达式是一个静态的概念,假如改变后可分为以下两种情况:
- 若将外部基本类型变量改变,则无法保证lambda表达式使用的值一致。
- 若将外部引用类型变量指向其他内存地址,由于外部的变量是从lambda构造器传入的,根据
规则2
,方法传入的是实际对象的内存地址而不是引用,则在内部或外部改变引用指向的地址后,无法保证lambda表达式内外使用的对象一致。
综上,为了保证数据的一致性,所以用final或实际的最终变量来限制内外引用变量指向的内存地址一致。
感谢您的阅读,本文已同步到我的个人博客,您的关注是对我最大的鼓励!
网友评论