编程思想:

面向对象思想:强调对象,做一件事先去找到能做这件事的对象,然后再调用它的方法。
		优点:方便管理,更加符合现实世界中的解决问题的方式。
		缺点:代码冗余臃肿。比如为了要调用一个Runnable接口的run()方法,
			  缺不得不创建一个类去实现这个接口。而我们其实真正关心的确实run()方法中的代码而已。
	面向过程(函数思想):强调的是结果,给出参数得到结果。不关心谁去做,怎么做。
		优点:专注于一件完成事或者实现一个功能。
		缺点:当程序体积过大后就难以管理了,过去大量的函数将会使得程序的维护变得很困难。

Java是典型的强制面向对象的语言,但是在JDK8后加入了一个新特性——Lambda表达式。

格式:
		([参数列表])->{
				//代码快
		}

解释:

()用于声明代码块中的用到的参数
	-> 指向代码段
	{} 代码段落

例如:用Lambda表达式实现Runnable接口实现多线程

public class Domain{
			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("Lambda表达式实现:"+Thread.currentThread().getName);
				})
			}
	}

由上面例子可以看出,lambda表达式的简洁之处。

使用Lambda表达式的条件:

  1. 必须是在有且仅有一个抽象方法的接口上来使用。
  2. lambda表达式必须具有上下文推断环境中实现。
  3. lambda表达式()中的参数类型是可以省略的,因为可以通过接口中的抽象方法的声明推断出来。
  4. 只有一条语句的方法可以省略{}和分号还有return的,因为返回值也是可以推断出来的。
  5. 注意:lambda表达式中的{},分号,return要省略必须一起省略的。
  6. 备注:在Java中只有一个抽象方法的接口称之为"函数式接口"。

Lambda表达式的省略写法:

new Thread(()->System.out.println("Lambda表达式实现:"+Thread.currentThread().getName))

补充带参数的接口

new Thread((int a)->System.out.println("参数"+a));

初学小白,有错误或者不足之处欢迎指出或者补充。