一、Lambda 是什么?(核心概念)
Lambda 是 Java 8 引入的匿名函数,用来简化只有一个抽象方法的接口(函数式接口)的写法。
换句话说:
- Lambda = 更简洁的函数写法
- Lambda = 传递行为(函数)而不是传递对象
Lambda 的基本语法
(parameters) -> expression
(parameters) -> { statements }
示例:传统写法 vs Lambda
传统写法(匿名类)
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Hello");
}
}).start();
Lambda 写法
new Thread(() -> System.out.println("Hello")).start();
更短、更清晰。
二、Lambda 的本质:函数式接口
Lambda 必须依附于'函数式接口'(只包含一个抽象方法的接口)。
常见函数式接口:
RunnableCallableComparatorPredicate<T>Function<T, R>Consumer<T>Supplier<T>
示例:
Predicate<Integer> isEven = n -> n % 2 == 0;
三、Stream 是什么?(核心概念)
Stream 是对集合进行声明式(非命令式)处理的 API,支持链式操作、并行处理、惰性求值。
Stream 不是集合,它不存储数据,只是数据的'流水线'。
四、Stream 的三大步骤
1. 创建 Stream
List<Integer> list = List.of(1, 2, 3);
Stream<Integer> s = list.stream();


