package com.inmind.lambda01; /* 使用匿名内部类实现多线程 匿名内部类的语法: new 父类|接口(){ 要重写的方法 } 线程的启动方式有2种: 1.继承Thread 2.实现Runnable(重点) ----------------------------------------------------------------------- 函数式编程思想:重点关注做什么,而不是怎么做 为了编写线程任务代码,我们必须面向对象,new Runnable(),再重写run()(public void run()),其实 我们只是要编写run方法中的方法体而已。 我们可以这么理解,函数式编程思想:做什么就是要重写的方法的方法体,而之前的对象创建,重写方法的语法都省略掉 ----------------------------------------------------------------------- Lambda的格式和前提条件 函数式编程思想:重点关注做什么,而不是怎么做,在这个概念中做什么实际上就是一个方法的方法体 针对一个方法而言,它有3个核心:1.参数列表 2.方法体 3.返回值 Lambda表达式所需的语法的符号:(),->,{} ():参数列表 ->:参数列表用来调用哪段代码 {}:方法体,根据是否有返回值,动态添加return Lambda的格式: (参数列表)->{ 方法体; [return] } lambda表达式的前提条件: 1.需要一个有且仅有一个抽象方法的接口(函数式接口) 2.接口作为参数或者变量类型 */ public class Demo01 { 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(); } }