美文网首页
学习笔记一 Java8新特性概述之Lambda表达式

学习笔记一 Java8新特性概述之Lambda表达式

作者: SeanPenn | 来源:发表于2018-06-09 17:55 被阅读0次

  Java8带来了一系列令人耳目一新的语言特性,其中最重要的就是接受了函数式编程的风格。Lambda表达式、接口的演变、库的重构、支持流数据处理、新的并行处理等新概念是其中最大的变化。
  在具体介绍这些概念之前,我们先用一些简单的例子来看看到底什么是Lambda表达式。
1、Runnable例子
  我们先用传统的方式来创建一个Runnable实例以及一个运行该接口的线程。

Runnable oldRunnable = new Runnable() {
        @Override
        public void run() {
            System.out.println("do something");
            doSomething();
        }
    };

  启用线程执行该接口:

new Thread(oldRunnable).start();

  从上面的代码可以看出,为了实现我们想要的逻辑,我们必须先实现这个Runnable接口,把相关代码封装在run方法里面,然后再创建一个线程去启动接口的执行。
2 、匿名类
  另一种方式是使用匿名类。这儿我们不必去实例化Runnable接口而是直接使用内联的匿名类。

new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("do something");
                doSomething();
            }
        }).start();

  比较这两种写法,我们可以看出,匿名类相对第一种写法仅仅是减少了变量的定义,整个逻辑其实并没有区别,我们真正想要执行的doSomething()仍然是隐晦的,被其他多余的代码所干扰。
3、使用Lambda表达式
  我们先不说关于Lambda表达式太多的细节,而是先看下上面的逻辑如何使用Lambda来替换。

// 创建Lambda表达式
Runnable doSomethingLambda = () -> doSomething();

// 创建线程执行
new Thread(doSomethingLambda).start();

  我们创建了第一个Lambda表达式直接调用我们想要执行的方法,把这个表达式赋值给Runnable变量,然后把这个变量作为Thread的入参。这样代码不仅清晰而且简洁,直接体现了想要执行的逻辑意图,省去了其他的干扰。
  另一种写法:

new Thread(() -> {
            System.out.println("do something");
            doSomething();
        }).start();

  我们可以看到Thread直接收到一段代码作为入参,而不需要创建Runnable变量。
  现在如果你想要做另一件事情,你可以很容易地实现:

new Thread(() -> doOtherThing()).start();

  这种我们传递代码像以前传递数据一样的使用方式,在Java8之前是不支持的。

相关文章

  • Lambda 表达式

    Lambda 表达式 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Lambda 表达式,...

  • Java 8、9 语言新特性

    Java语言新特性 Java8 Java 8 新特性 Lambda 表达式 Lambda表达式(也叫做闭包)是Ja...

  • java8 新特性

    java8 新特性 1 Lambda表达式 lambda 是一个匿名函数, lambda 表达式基本语法: jav...

  • Java8 新特性之 Lambda 表达式

    Lambda表达式 lambda表达式是java8给我们带来的几个重量级新特性之一,借用lambda表达式,可以让...

  • Lambda表达式

    内容整理自bilibili 参考链接 一、lambda表达式的简介 lambda表达式是java8添加的新特性; ...

  • java8

    现代化 Java - Java8 指南 JAVA8新特性(吐血整理) 理解 Lambda 表达式

  • JAVA8新特性:Stream与Lambda表达式

    一、Stream学习 在学习lambda表达式之前,我们需要先了解Stream这个java8的新特性。 Strea...

  • Lambda表达式和函数式接口

    初识lambda表达式 lambda表达式是Java8的新特性,可以将lambda表达式看成是精简语法的匿名内部类...

  • Lambda的基础使用

    Lambda是java8出的新特性,之前很少用Lambda表达式写代码,现在慢慢习惯用Lambda表达式,并且记得...

  • java8的λ(lambda)表达式与Stream API

    一、λ(lambda)表达式学习 Java8最值得学习的特性就是Lambda表达式和Stream API,如果有p...

网友评论

      本文标题:学习笔记一 Java8新特性概述之Lambda表达式

      本文链接:https://www.haomeiwen.com/subject/qemteftx.html