Lambda表達式的標準格式:

由三部分組成

  a.—些參數

  b.一個箭頭

  c.一段代碼格式:
(參數列表)->{一些重寫方法的代碼}

  解釋説明格式:

  ():接口中抽象方法的參數列表,沒有參數,就空着;有參數就寫出參數,多個參數使用逗號分隔

  ->:傳遞的意思,把參數傳遞給方法體{}

  {}:重寫接口的抽象方法的方法體

匿名內部類中最關鍵的內容是方法參數, 方法體, 返回值。
所以最好的方式是隻關注這核心的三個內容。
lambda表達式就是隻關注着三個內容

Lambda表達式的標準格式:
    (參數類型 參數名) -> {
        方法體;
        返回值;
    }
注意:
    1. 小括號裏面可以寫多個參數,多個參數之間用逗號隔開。
    2. ->是一個運算符,表示指向性動作。
    3. 大括號中要寫方法體和返回值, 和之前傳統方法的寫法基本一致。

Lambda表達式可以省略面向對象中條條框框,讓我們只關注最核心的內容。

函數式編程思想: 可推導,就是可省略。
因為Thread構造方法中要傳遞一個Runnable接口類型的參數,所以能夠推導出來參數類型, 所以可以省略new Runnable
因為實現接口的時候要重寫接口中的抽象方法, 重寫之後的方法修飾符 返回值類型 方法名要和父類一致,所以我們可以省略要重寫的方法的修飾符 返回值類型這些內容。

Lambda表達式是匿名內部類的簡化寫法


public class Demo02Inner {
public static void main(String[] args) {
    //創建Runnable接口的實現類對象
    MyTask myTask = new MyTask();
    new Thread(myTask).start();
    //使用匿名內部類實現
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName() + "執行了");
        }
    }).start();
    //使用Lambda表達式完成多線程
    new Thread(() -> {
        System.out.println(Thread.currentThread().getName() + "執行了");
    }).start();
}

 

 

public static void main(String[] args) {
        //簡化代碼
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"新的線程創建了");
            }
        }).start();

             //使用Lambda方式實現多線程
            new Thread(()->{
                System.out.println(Thread.currentThread().getName()+"新的線程創建了");
            }
        ).start();
    }