jdk1.8新特性
Lambda表达式
本质上是一段匿名内部类,也可以是一段可传递的代码。
优点:代码简洁,使用几行代码,减少代码量。
函数式接口
函数式接口的提出是为了给lambda表达式提供更好的支持。
只定义了一个抽象方法的接口(object类的public方法除外),并且还提供了注解 @FunctionalInterface。
方法引用和构造器调用
Stream API
操作的三个步骤:(1)创建stream(2)中间操作(过滤、map)(3)终止操作
接口中的默认方法和静态方法
在接口中可以使用default和static修饰接口中定义的方法
新时间日期API
- 之前使用的java.util.Date月份从0开始,我们一般会+1使用,很不方便,java.time.LocalDate月份和星期都改成了enum
- java.util.Date和SimpleDateFormat都不是线程安全的,而LocalDate和LocalTime和最基本的String一样,是不变类型,不但线程安全,而且不能修改。
- java.util.Date是一个“万能接口”,它包含日期、时间,还有毫秒数,更加明确需求取舍
- 新接口更好用的原因是考虑到了日期时间的操作,经常发生往前推或往后推几天的情况。用java.util.Date配合Calendar要写好多代码,而且一般的开发人员还不一定能写对。