Lambda 是什么 ?
简单的说,Lambda 就是匿名函数。由于 Java 是完全面向对象的,不能像 C 语言那样独立的定义函数以及函数变量,Java 中的方法 (函数) 只能定义在类或者接口中,所以 Java 采取了一种折衷的方案实现 Lambda: 通过有且只有一个未实现的方法的接口来实现 Lambda,所以这样的接口又叫做 Functional Interface。
在 Java 中,Lambda 的本质是匿名内部类的语法糖,用于简化匿名内部类的编码。也许您要问,匿名内部类在编译的时候都会成功 class 文件,但 Lambda 却没有看到对应的 class 文件啊。其实这也好理解,class 文件最后会被 JVM 加载到 byte[] 中,用于生成 Class 对象,Lambda 实现的匿名内部类在运行时生成对应的 bytes[] 来生成 Class 对象就可以了,class 文件只是一个载体,其内容也可以通过 URL 远程加载呢,这样本地是不是也一样看不到 class 文件了呢?
Lambda comes from the Lambda Calculus and refers to anonymous functions in programming.