Lambda表达式(多线程实现)
推导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表达式(多线程实现)相关推荐
- 【Java Lambda表达式】Lambda表达式详解、Lambda表达式的等效使用方式、多线程
1.静态内部类 静态内部类,属于类中的类,好处是:如果不使用,就不会被编译. 如果把这个类放到方法中,成为局部内部类(看下一部分) package cn.hanquan.test;/*Lambda表达 ...
- Java基础---学Java怎么能不了解多线程---Lambda表达式
多线程 程序,进程,线程 1.程序(program):一个固定的运行逻辑和数据的集合,是一个静态的概念,一般都存储在磁盘中 2.进程(process):一个正在运行的程序,是一个程序的一次运行,是一个 ...
- 五、Java中常用的API(通过包进行分类)————异常、多线程和Lambda表达式
之前已经介绍了java.lang包下的相关类,今天将要补充两个常用的API:java.lang.Throwable和java.lang.Thread 一.异常(java.lang.Throwable) ...
- Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)
Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...
- 多线程-静态代理-Lambda表达式
文章目录 多线程 进程和线程 (Process and Thread) 线程 实现线程的三种方式 继承Thread类 实现Runable接口 实现Callable接口 静态代理 Thread底层实现方 ...
- 多线程、线程池以及Lambda表达式的总结笔记分享
文章目录 1. 多线程技术 1.1 线程与进程 1.2 守护线程和用户线程 1.3 线程的六种状态 1.4 线程的调度 1.5 同步与异步 1.6 并发与并行 1.7 Thread类 1.7.1 Th ...
- C++多线程:Lambda表达式
定义 Lambda 表达式可以说是c++11引用的最重要的特性之一,虽然跟多线程关系不大,但是它在多线程的场景下使用很频繁,所以在多线程这个主题下介绍它更合适.Lambda 来源于函数式编程的概念,也 ...
- 【JAVA黑马程序员笔记】四 P314到P384(特殊流、多线程编程、网络编程模块、lambda表达式、接口组成更新、方法引用、函数式接口)
P314-315 字节/符打印流 PrintStream ps = new PrintStream("test.txt");//使用字节输出流的方法ps.write(97);// ...
- lambda表达式——写多线程
JDK1.8 中Lambda 表达式的出现,基本可以取替原来的匿名类实现多线程的方式.下面列举常用的常用的三种情况. 一.普通开启异步线程 new Thread(() -> System.out ...
- Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式
一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...
最新文章
- Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)
- VALSE 2020-18 《如何写/审AI领域的论文》笔记
- sqlplus登录方式,列出所有表,列出表结构,sqlplus行和列显示设置,别名,空值问题,连接符,DISTINCT
- MySQL模糊查询—in关键字
- 【转】 android sdk setup时出现:Failed to fetch URL
- abp vnext2.0之核心组件模块加载系统源码解析
- oracle 数据抽取 java_oracle数据抽取步骤
- Docker 安装基本操作
- 自己写的一个 游标 实例
- 毕业论文自动去重软件,内附软件
- JAVASUNHome家政服务管理平台计算机毕业设计Mybatis+系统+数据库+调试部署
- Japanese Student Championship 2021
- winpe 能否修复服务器系统盘,U盘WINPE、光盘WINPE系统(启动修复盘)制作图文教程...
- html5在线编辑器效果和源码
- 生活-四种游泳姿势的动画图解
- 期货ios模拟交易软件
- JSON字符串与protobuf互转
- 数据仓库中的数据粒度
- 一加7t人脸识别_10月换新推荐:一加7T/荣耀20青春版领衔好手机
- Qt: 判断字符串是否为数字,是否为整数
热门文章
- linux c之遍历字符串数组
- C和指针之动态内存分配常见问题和总结
- access的ole对象换成mysql_ACCESS的Ole对象读取写入
- 2018 Kaggle 报告:在技术领域,女性从业者持续减少,00后开始展露头脚
- 为什么一流成功人士的闹钟都定在早晨5:57?
- 《SAS编程与数据挖掘商业案例》学习笔记之十八
- 量子计算机是程序员的未来,研究者:量子计算机一旦成功问世,时间也许会失去存在的意义...
- php+转义实体字符,PHP针对HTML实体字符的转义函数
- 最近有粉丝向我请教Java泛型,于是重温了一下,希望学弟面试顺利
- python二维列表写入excel_用Python实现合并excel列表