# 知识体系
# 相关文章
# 函数编程
- Lambda 表达式的特点
- Lambda 表达式使用和Stream下的接口
- 函数接口定义和使用,四大内置函数接口Consumer,Function,Supplier, Predicate.
- Comparator排序为例贯穿所有知识点。
详细分析请参看: Java 8 - 函数编程
# Optional类
提示
这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。
- Optional类的意义
- Optional类有哪些常用的方法
- Optional举例贯穿所有知识点
- 多重类嵌套Null值判断
详细分析请参看: Java 8 - Optional类
# default方法
提示
默认方法给予我们修改接口而不破坏原来的实现类的结构提供了便利,目前java 8的集合框架已经大量使用了默认方法来改进了,当我们最终开始使用Java 8的lambdas表达式时,提供给我们一个平滑的过渡体验。
- 为什么会出现默认方法?
- 接口中出现默认方法,且类可以实现多接口的,那和抽象类有啥区别?
- 多重实现的默认方法冲突怎么办?
详细分析请参看: Java 8 - default方法
# 类型注解
提示
那充满争议的类型注解究竟是什么? 复杂还是便捷?
- 注解在JDK哪个版本中出现的,可以在哪些地方用注解?
- 什么是类型注解?
- 类型注解的作用是什么?
- 为什么会出现类型注解(JSR308)?
详细分析请参看: Java 8 - 类型注解
# 重复注解
- Java8之前对重复注解是怎么做的?
- Java8对重复注解添加了什么支持?
详细分析请参看: Java 8 - 重复注解
# LocalDate/LocalDateTime
提示
Date/Calendar槽点, java8对其进行了重写。
- Java8之前的Date有哪些槽点? (Calendar的所有属性都是可变的,SimpleDateFormat的线程不安全性等)
- Java8之前使用哪些常用的第三方时间库?
- Java8关于时间和日期有哪些类和方法,变比Java8之前它的特点是什么?
- 其它语言时间库?
详细分析请参看: Java 8 - LocalDate/LocalDateTime
# StampedLock
- 为什么会引入StampedLock
- 用Lock写悲观锁和乐观锁举例
- 用StampedLock写悲观锁和乐观锁举例
- 性能对比
详细分析请参看: Java 8 - StampedLock
# 其它更新
- Java8 还有哪些其它更新
- 字符串
- Base64
- Random
- Nashorn
- ...
详细分析请参看: Java 8 - 其它更新