简介
- 速度快
- 代码更少(增加了新的语法Lambda表达式) 核心
- 强大的Stream API 核心
- 便于并行
- 最大化减少空指针异常
主要内容
- Lambda表达式
- 函数式接口
- 方法引用和构造器引用
- StreamAPI
- 接口中的默认方法与静态方法
- 新时间日期API
- 其他新特性
Lambda表达式
为什么使用Lambda表达式
- Lambda是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
Lambda表达式的简化
- 从匿名类到Lambda的转换
例一
// 匿名内部类
Runable r1 = new Runnable() {
@Verride
public void run() {
System.out.println("hello world");
}
};
// Lambda表达式
Runable r1 = () -> System.out.println("hello world");
例二
// 原来使用匿名内部类作为参数传递
TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.compare(o1.length(), o2.length());
}
};
// Lambda表达式作为参数传递
TreeSet<String> ts2 = new TreeSet<>((o1, o2) -> Integer.compare(o1.length, o2.length);
Lambda 表达式语法
Lambda 表达式在Java语法中引入了一个新的语法元素和操作符。这个操作符作为“->” ,该操作符被称为Lambda操作符或箭头操作符。它将