arr数组定义在GetMax的外面,当然能访问到了。
lambda本质是匿名类,只是把arr当做常量放了进去
1、这个不仅是lambda表达式,核心思想是定义了一个函数式接口Supplier s
2、这段代码细分下来应该是Supplier s = {};然后才是getMax(s);只是写这段代码的人简写了,合并在了一起,所以给人的感觉像是匿名函数里可以访问到外部变量。
3、lambda表达式仅仅只是把new Supplier。。。简化成了()->{}
lambda表达式根本意义是可以把使用局部变量,免去对象之间乱七八糟的交互,简化代码