jdk1.8新特性
jdk1.8新特性内容
- Lambda表达式
- 局部内部类中变量的修饰符
- 默认方法
- Date Api
- 流
1、Lambda表达式
Lambda表达式是jdk1.8里面的一个重要的更新,这意味着java也开始承认了函数式编程,并且尝试引入其中
简单的来说使用Lambda表达式书写,省去了接口的实现类,只有是函数接口才能使用Lambda表达式替换
函数式接口:即该接口中只有一个抽象方法。
2、局部内部类中变量修饰符
final修饰符可省略:内部类在访问它所在的方法中的变量时,该变量必须时常量(被final修饰的),jdk1.8之后省略了final修饰符,但本质上该变量还是final的
3、默认方法
static default
接口中方法可以用abstract/default/static修饰,修饰符不可混合使用
4、Date Api
jdk1.8新增了一些处理时间问题的专门类,在包java.time下包含了一组全新的时间日期API。
Time包下
- LocalDate 代表的是 不带时间的日期 yyyyMMdd
- LocalTime 代表的是 不带日期的时间 HH:mm:ss
- LocalDateTime 包含了日期与时间 不过没有带时区
- ZonedDateTime 包含了 日期与时间 带时区
5、流
定义:流是Java API的新成员,它允许我们以声明性方式处理数据集合。
Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的Iterator。 原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。