函數式接口指的是:有且僅有一個抽象方法,可是能夠有多個非抽象方法的接口(接口默認方法)。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> //。。。