1.为什么流会延迟执行
流采用惰性计算的方式。只有在需要结果的时候,流才会开始执行操作流框架。并且流会根据整个操作链构建一个优化的执行计划,因此在执行返回 Stream
的方法时,并不立刻执行,而是等返回一个非 Stream
的方法后才执行。
2. 流小结
- 一个流对象只可以操作一次,但是可以通过链式编程对遍历后的数据再处理
- 流的方法参数都是函数式接口
- 流不保存数据,不改变数据
3. Optional类
Optional是为了
解决 NPE(java.lang.NullPointerException
)问题而产生的类
3.1 创建Optional对象的方式
ofNullable
方法of
方法会抛出NullPointerException
异常
//ofNullable方法
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
//of方法
public static <T> Optional<T> of(T value) {
return new Optional<>(value);
}
3.2 Optional类中会报空指针异常的方法
- of()
- get()
- flatMap()
4.Date-Time API
4.1 java.time 主要类
LocalDateTime.class // yyyy-MM-dd HH:mm:ss"
LocalDate.class // yyyy-MM-dd
LocalTime.class //HH:mm:ss
4.2 jdbc 时间类型和 java8 时间类型对应关系
Date
--->LocalDate
Time
--->LocalTime
Timestamp
--->LocalDateTime
4.3
Java8时间类型解决了Date类哪些问题?
- 线程安全问题
- 时区处理麻烦
- 格式化,时间计算麻烦
- java.time将日期和时间进行了分离