Java 8中Lambda表達式就是一個函數接口,也就是隻有一個抽象方法的接口。ide
Java中,傳遞一個行爲是經過傳遞一個表明某種行爲的對象來實現,好比,須要給某個按鈕註冊一個事件監聽:函數
button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("button clicked"); } });
經過匿名內部類傳遞了一個actionPerformed的行爲。不過,這種傳遞行爲的方式不得不加上一些冗繁的樣板代碼,從而顯得不夠簡便。spa
在Java 8中能夠這樣寫:code
button.addActionListener(event -> System.out.println("button clicked"));
其實,就是開頭說的那樣,Lamdba表達式的類型就是一個函數接口,只是在Java 8中,編譯器能夠根據Lambda表達式所在的上下文推斷出來所要傳遞行爲的各類信息。orm
在JDK中提供了一組核心的函數接口,可使用這些函數接口傳遞行爲。對象
Lambda表達式是一個匿名方法,將行爲像數據同樣進行傳遞。blog