函数式接口指的是:有且仅有一个抽象方法,可是能够有多个非抽象方法的接口(接口默认方法)。java
该注解标记一个接口为函数式接口。ide
对于标注了这个注解的接口,编译器会强制检查该接口是否有且仅有一个抽象方法。不然会报错。函数
即便不使用该注解,只要知足函数式接口的定义,就是一个函数式接口线程
函数式接口能够被隐式转换为Lambda表达式。code
若是有一个方法使用函数式接口做为参数,那么就能够使用Lambda进行传参。接口
好比线程中的Runable接口:编译器
//匿名内部类写法 new Thread(new Runnable() { @Override public void run() { System.out.println("内部类写法"); } }).start(); //lambda 写法 new Thread(() -> System.out.println("lambda写法")).start();
java.lang.Runnable java.util.concurrent.Callable java.util.Comparator
//java.util.function包下 Consumer<T> Function<T,R> Predicate<T> //。。。