工作上基本用的是JDK8(现在11已经发布),但是对8的特性用的很少、缺少系统性的整理,因此,腾出时间做以整理~
Lambda
Lambda表达式的语法形式如下:
1
2
3
4
5
6
7
8
9
10主要组成:参数列表 + 箭头 + 表达式体,如 (int x, int y) -> x + y
其中,表达式体可以是一条表达式,也可以是一个语句块(多条代码语句);
Lambda表达式具有如下特征:
【可选】类型声明:参数的类型不需要声明,编译器可以根据参数值推断出其类型;
【可选】括号:单个参数的话,不需要用圆括号包围参数,当然,对于多个参数或无参数的话,括号是需要的;
【可选】花括号:如果表达式主体只有一条语句的话,不需要用花括号包围,当然,对于多条语句,花括号是需要的;
【可选】return关键字:如果表达式主体是单一表达式,return关键字可以不写,编译器可以自动返回该值,当然,如果写了return,则需要加上花括号;
Optionals
Streams
- Filter
- Sorted
- Map
- Match
- Count
- Reduce
Parallel Streams
Maps
Date API
- Clock
- Timezones
- LocalTime
- LocalDate
- LocalDateTime