推导lambda表达式

  • Lambda表达式,避免匿名内部类定义过多,其实质属于函数式编程的概念;
    去掉一些没有意义的代码,只留下核心代码;
    当前接口为函数式接口(任何一个接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口),可以通过Lambda表达式来创建该接口的对象;
  • 1、实习类:接口+实现类+主线程调用抽象方法
  • 2、静态内部类(注意:加static) :接口+静态内部类实现接口+主线程调用抽象方法
  • 3、局部内部类:接口+主线程内实现接口+内部调用抽象方法
  • 4、匿名内部类,没有类的名称,必须借助接口或父类:接口+主线程内实现接口(没有创建实现类,而是直接新建一个对象实现接口)+内部调用抽象方法
  • 5、Lambda表达式:接口+主线程内实现接口(当前为函数式接口,只有一个抽象方法,直接新建接口对象实现抽象方法)+内部调用抽象方法
package com.zeng.demo01;
/*
推导lambda表达式
*/
public class TextLambda01 {//3、静态内部类(注意:加static)【简化一版】static class Like2 implements ILike{@Overridepublic void lambda() {System.out.println("i like Lambda2");}}public static void main(String[] args) {ILike iLike = new Like();//实例化对象iLike.lambda();iLike = new Like2();iLike.lambda();//4、局部内部类【简化二版】class Like3 implements ILike{@Overridepublic void lambda() {System.out.println("i like Lanbda3");}}iLike=new Like3();iLike.lambda();//5、匿名内部类,没有类的名称,必须借助接口或父类【简化三版】iLike=new ILike() {@Overridepublic void lambda() {System.out.println("i like Lambda4");}};iLike.lambda();//6、用Lambda简化【简化四版】(对于函数式接口可以用Lambda表达式来创建该接口的对象)iLike=()->{System.out.println("i like Lambda5");};iLike.lambda();}
}
//1、定义一个函数式接口(只包含唯一一个抽象方法)
interface  ILike{void lambda();
}
//2、实现类
class Like implements ILike{@Overridepublic void lambda() {System.out.println("i like Lambda");}
}

练习Lambda表达式

  • 总结
    Lambda表达式当在只有一行代码的情况下才能简化成一行代码,如果有多行代码,那么就用代码块包裹
    前提是接口为函数式接口
    多个参数也可以去掉参数类型,要去掉都去掉必须加括号。
package com.zeng.demo01;public class TestLambda02 {//2、静态内部类
//      static class Love implements ILove{//        @Override
//        public void love(int a) {//            System.out.println("i love you-->"+a);
//        }
//    }public static void main(String[] args) {//3、局部内部类(将类放到方法体里面)
//        class Love implements ILove{//            @Override
//            public void love(int a) {//                System.out.println("i love you-->"+a);
//            }
//        }//前三种需用到此方法// ILove love = new Love();//4、匿名内部类(没有方法,用接口实现)
//        ILove love=new ILove() {//            @Override
//            public void love(int a) {//                System.out.println("I love you--》"+a);
//            }
//        };//5、Lambda表达式(方法里有参数)
//       ILove love=(int a)->{//            System.out.println("I love you-->"+a);
//        };//5.1 Lambda表达式(去掉参数返回类型)
//              ILove love=(a)->{//                   System.out.println("I love you-->"+a);
//                };//5.2 Lambda表达式(简化括号)
//        ILove love=a->{//            System.out.println("I love you-->"+a);
//        };//5.3 Lambda表达式(去掉花括号)ILove love=a->System.out.println("I love you-->"+a);love.love(520);//总结// lambda表达式当在只有一行代码的情况下才能简化成一行代码,如果有多行代码,那么就用代码块包裹//前提是接口为函数式接口//多个参数也可以去掉参数类型,要去掉都去掉必须加括号,}
}
interface ILove{void love(int a);
}
//1、实现类
//class Love implements ILove{//
//    @Override
//    public void love(int a) {//        System.out.println("i love you-->"+a);
//    }
//}

Lambda表达式(多线程实现)相关推荐

  1. 【Java Lambda表达式】Lambda表达式详解、Lambda表达式的等效使用方式、多线程

    1.静态内部类 静态内部类,属于类中的类,好处是:如果不使用,就不会被编译. 如果把这个类放到方法中,成为局部内部类(看下一部分) package cn.hanquan.test;/*Lambda表达 ...

  2. Java基础---学Java怎么能不了解多线程---Lambda表达式

    多线程 程序,进程,线程 1.程序(program):一个固定的运行逻辑和数据的集合,是一个静态的概念,一般都存储在磁盘中 2.进程(process):一个正在运行的程序,是一个程序的一次运行,是一个 ...

  3. 五、Java中常用的API(通过包进行分类)————异常、多线程和Lambda表达式

    之前已经介绍了java.lang包下的相关类,今天将要补充两个常用的API:java.lang.Throwable和java.lang.Thread 一.异常(java.lang.Throwable) ...

  4. Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)

    Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...

  5. 多线程-静态代理-Lambda表达式

    文章目录 多线程 进程和线程 (Process and Thread) 线程 实现线程的三种方式 继承Thread类 实现Runable接口 实现Callable接口 静态代理 Thread底层实现方 ...

  6. 多线程、线程池以及Lambda表达式的总结笔记分享

    文章目录 1. 多线程技术 1.1 线程与进程 1.2 守护线程和用户线程 1.3 线程的六种状态 1.4 线程的调度 1.5 同步与异步 1.6 并发与并行 1.7 Thread类 1.7.1 Th ...

  7. C++多线程:Lambda表达式

    定义 Lambda 表达式可以说是c++11引用的最重要的特性之一,虽然跟多线程关系不大,但是它在多线程的场景下使用很频繁,所以在多线程这个主题下介绍它更合适.Lambda 来源于函数式编程的概念,也 ...

  8. 【JAVA黑马程序员笔记】四 P314到P384(特殊流、多线程编程、网络编程模块、lambda表达式、接口组成更新、方法引用、函数式接口)

    P314-315 字节/符打印流 PrintStream ps = new PrintStream("test.txt");//使用字节输出流的方法ps.write(97);// ...

  9. lambda表达式——写多线程

    JDK1.8 中Lambda 表达式的出现,基本可以取替原来的匿名类实现多线程的方式.下面列举常用的常用的三种情况. 一.普通开启异步线程 new Thread(() -> System.out ...

  10. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

最新文章

  1. Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)
  2. VALSE 2020-18 《如何写/审AI领域的论文》笔记
  3. sqlplus登录方式,列出所有表,列出表结构,sqlplus行和列显示设置,别名,空值问题,连接符,DISTINCT
  4. MySQL模糊查询—in关键字
  5. 【转】 android sdk setup时出现:Failed to fetch URL
  6. abp vnext2.0之核心组件模块加载系统源码解析
  7. oracle 数据抽取 java_oracle数据抽取步骤
  8. Docker 安装基本操作
  9. 自己写的一个 游标 实例
  10. 毕业论文自动去重软件,内附软件
  11. JAVASUNHome家政服务管理平台计算机毕业设计Mybatis+系统+数据库+调试部署
  12. Japanese Student Championship 2021
  13. winpe 能否修复服务器系统盘,U盘WINPE、光盘WINPE系统(启动修复盘)制作图文教程...
  14. html5在线编辑器效果和源码
  15. 生活-四种游泳姿势的动画图解
  16. 期货ios模拟交易软件
  17. JSON字符串与protobuf互转
  18. 数据仓库中的数据粒度
  19. 一加7t人脸识别_10月换新推荐:一加7T/荣耀20青春版领衔好手机
  20. Qt: 判断字符串是否为数字,是否为整数

热门文章

  1. linux c之遍历字符串数组
  2. C和指针之动态内存分配常见问题和总结
  3. access的ole对象换成mysql_ACCESS的Ole对象读取写入
  4. 2018 Kaggle 报告:在技术领域,女性从业者持续减少,00后开始展露头脚
  5. 为什么一流成功人士的闹钟都定在早晨5:57?
  6. 《SAS编程与数据挖掘商业案例》学习笔记之十八
  7. 量子计算机是程序员的未来,研究者:量子计算机一旦成功问世,时间也许会失去存在的意义...
  8. php+转义实体字符,PHP针对HTML实体字符的转义函数
  9. 最近有粉丝向我请教Java泛型,于是重温了一下,希望学弟面试顺利
  10. python二维列表写入excel_用Python实现合并excel列表