
1 package day13.lesson1;
2
3 /*
4 1 Lambda表达式
5
6 1.1 体验Lambda表达式
7
8 案例需求
9 启动一个线程,在控制台输出一句话:多线程程序启动了
10
11 实现方式一
12 定义一个类MyRunnable实现Runnable接口,重写run()方法
13 创建MyRunnable类的对象
14 创建Thread类的对象,把MyRunnable的对象作为构造参数传递
15 启动线程
16
17 实现方式二
18 匿名内部类的方式改进
19
20 实现方式三
21 Lambda表达式的方式改进
22
23 1.2 Lambda表达式的标准格式
24
25 格式:(形式参数) -> {代码块}
26 形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
27 ->:由英文中画线和大于符号组成,固定写法。代表指向动作
28 代码块:是我们具体要做的事情,也就是以前我们写的方法体内容
29
30 组成Lambda表达式的三要素:形式参数,箭头,代码块
31
32 Lambda表达式的使用前提:有一个接口、接口中有且仅有一个抽象方法
33 */
34 public class LambdaDemo {
35 public static void main(String[] args) {
36 //方式1:实现类
37 /*MyRunnable mr = new MyRunnable();
38 Thread t = new Thread(mr);
39 t.start();*/
40
41 //方式2:匿名内部类
42 /*new Thread(new Runnable() {
43 @Override
44 public void run() {
45 System.out.println("多线程程序启动了2");
46 }
47 }).start();*/
48
49 //方式3:Lambda表达式
50 new Thread(
51 ()->{
52 System.out.println("多线程程序启动了3");
53 }
54 ).start();
55
56 }
57 }
58
59 class MyRunnable implements Runnable{
60 @Override
61 public void run() {
62 System.out.println("多线程程序启动了1");
63 }
64 }
