java1.8新特性
函数式编程
提供的接口的抽象方法的实现类
接口:函数式接口
java.util.function.xxxxx
Predicate: boolean test() 断言 判断逻辑
Consumer : accept(T t) 消费 通过提供一个对象 --》代码处理
Function: R apply() 关系函数 k----> v
supplier: T get() 通过代码生产出一个对象
有且只有一个抽象方法
java7.0以来
try-with-resource的资源自动释放等,都给我们带来了很方便的操作和极大的便利。
将流的声明和创建放在try(InputSream in = new FileInputStream(file));
不需要再手动写关流的代码,会自动关流,释放资源。
从以下几个方面来了解java1.8新特性
1. 接口方法
java1.8之前,接口中的方法全都是抽象方法,不能有其他方法,
java1.8以后,接口中可定义默认(default)和静态方法(static),这两种方法都可以有具体实现,
实现该接口的类也可继承这两种方法去直接使用,也可对其进行重写
默认方法存在的两大优势:
1. 可以让接口更优雅的升级,减少使用人员操作的负担
不必随着接口方法增加,从而修改实现代码,因为默认方法在子类中可以不用实现
2. 可以让实现类中省略很多不必要方法的空实现
接口继承和默认方法冲突
1、
如果一个类实现了多个接口,这些接口之间有继承关系,同时还子接口还实现了父接口的默认方法
在该类中调用方法时,类中声明的方法优先级最