当前位置: 首页 > news >正文

财政厅门户网站三基建设企业网络营销策划书范文

财政厅门户网站三基建设,企业网络营销策划书范文,做b2b网站卖什么好,wordpress个人中心打不开相关文章目录 第一篇: Java【EE初阶】进程相关知识 进程管理 内存管理 文章目录相关文章目录前言一、lambda表达式 是什么?1, lambda表达式 的背景2, 什么是 函数式接口3, lambda表达式 的语法二、lambda表达式 的使用方式1, 无参无返回值2, 有一个参…

相关文章目录

第一篇: Java【EE初阶】进程相关知识 + 进程管理 + 内存管理


文章目录

  • 相关文章目录
  • 前言
  • 一、lambda表达式 是什么?
    • 1, lambda表达式 的背景
    • 2, 什么是 函数式接口
    • 3, lambda表达式 的语法
  • 二、lambda表达式 的使用方式
    • 1, 无参无返回值
    • 2, 有一个参, 无返回值
    • 3, 有多个参, 无返回值
    • 4, 无参, 有返回值
    • 5,有一个参,有返回值
    • 6,有多个参,有返回值
    • 7, 说明
  • 三、 变量捕获
    • 1, 匿名内部类 的变量捕获
    • 2, lambda表达式 的变量捕获
  • 四、为什么要有 lambda表达式
  • 总结


前言

由于正在更新 Java【EE初阶】部分中多线程相关的文章,lambda表达式 是多线程编程中很常用的语法功能,本篇将分享 lambda表达式 相关的内容, 主要介绍 lambda表达式 的使用方式 以及在集合中的一些应用

如果看到这篇文章的读者们正处于 Java 基础语法阶段,只要有【类和对象、接口】部分的基础就可以无压力学会 lambda表达式 的基本操作


提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎评论区指点~ 废话不多说,直接发车~

一、lambda表达式 是什么?

1, lambda表达式 的背景

Lambda表达式 是 JavaSE8 中一个重要的新特性。lambda表达式 允许你通过表达式来代替功能接口(函数式接口)。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)

Lambda 表达式(Lambda expression),基于数学中的λ演算得名,也可称为闭包(Closure)

🚗🚗🚗
要学习 lambda表达式,要先了解一下什么是函数式接口


2, 什么是 函数式接口

📌函数式接口 : 一个接口中有且仅有一个抽象方法(不能存在方法体)

👉例如 多线程编程中提到的 Runnable接口 的源码 :
在这里插入图片描述
这就是一个函数是接口, 可以看到, 接口中只有一个抽象方法, 并且还有一个注解 : @FunctionalInterface
这个注解负责说明 : 这是一个函数式接口, 并且负责检查 : 如果这个接口中还有其他方法, 就会编译不通过

JDK1.8 新增规定: 可以额外定义 default 方法(但是必须写出方法体)

👉我们自己写一个函数式接口试试 :
在这里插入图片描述
👉如果写了两个抽象方法, @FunctionalInterface 这个注解就会帮我们检查出来并报错
在这里插入图片描述


3, lambda表达式 的语法

📌基本语法: (parameters) -> { statements ; } 或者写成 : (parameters) -> expression

一个 lambda表达式 由三部分组成:
1️⃣paramaters :类似方法中的形参列表,这里的参数是函数式接口里的参数, 数据类型可以声明, 也可以不声明

当只有一个参数时, 可以省略小括号

2️⃣-> :可理解为 “被用于” 的意思
3️⃣方法体 :代码块(一行或多行), 是函数式接口里方法的实现 , 可以有返回值也可以没有, 等同于方法的方法体

当只有一句代码块时, 可以省略大括号和分号

🚗🚗🚗
以下仅展示语法使用和效果, 并不是完整的使用方式,具体使用下面会演示

	// 1. 无参, 返回值为 2() -> {2;}// 2. 有一个参数x(省略类型), 返回参数x的二倍x -> {2 * x;}// 3. 有两个参数x, y(省略类型), 返回x+y的和(x, y) -> {x + y;}// 4. 有两个参数x, y, 返回x+y的积(int x, int y) -> {x * y;}// 5. 有一个参数s, 类型为String, 执行打印操作, 无返回值(String s) -> {System.out.print(s);}

二、lambda表达式 的使用方式

举 6 个例子, 能够覆盖所有的使用场景 :
1️⃣无参, 无返回值
2️⃣有一个参, 无返回值
3️⃣有多个参, 无返回值
4️⃣无参, 有返回值
5️⃣有一个参, 有返回值
6️⃣有多个参, 有返回值

所以接下来会定义 6 种函数式接口

复习知识点 : 要调用接口里的方法, 就需要有一个类实现这个接口, 在这个类中重写接口中的抽象方法, 然后实例化这个类, 才能调用


1, 无参无返回值

📌我们先展示最原始的写法:
1️⃣先定义出 NoParameterNoReturn 接口
2️⃣定义一个类 A , 实现 NoParameterNoReturn 接口, 并重写其中的 test 方法
3️⃣定义一个对象 “noParameterNoReturn”, 实例化类A
4️⃣调用对象中的 test 方法
在这里插入图片描述

控制台打印:
无参无返回值

📌然后来看匿名内部类的写法 :
实例化了一个不知道叫什么名字的类, 只知道这个类实现了 NoParameterNoReturn 接口, 并重写了其中的抽象方法
在这里插入图片描述

📌最后来看使用 lambda表达式 的写法 :
在这里插入图片描述

以下示例只展示 匿名内部类 及 lambda表达式 的写法


2, 有一个参, 无返回值

📌匿名内部类 :
在这里插入图片描述

控制台打印:
20: 有一个参, 无返回值

📌lambda表达式 :
在这里插入图片描述


3, 有多个参, 无返回值

📌 匿名内部类 :
在这里插入图片描述

控制台打印:
30: 有多个参, 无返回值

📌lambda表达式 :
在这里插入图片描述


4, 无参, 有返回值

📌匿名内部类 :
在这里插入图片描述

控制台打印 :
无参, 有返回值
100

📌lambda表达式 :
在这里插入图片描述


5,有一个参,有返回值

📌匿名内部类 :
在这里插入图片描述

控制台打印:
20: 有一个参, 有返回值
20

📌lambda表达式 :
在这里插入图片描述


6,有多个参,有返回值

📌 匿名内部类 :
在这里插入图片描述

控制台打印:
30: 有两个参, 有返回值
30

📌lambda表达式 :
在这里插入图片描述


7, 说明

有多个参, 有返回值的接口为例 : 使用函数式接口时 , idea 可以检查并提示你的代码编写方式

📌匿名内部类写法 :
在这里插入图片描述
📌lambda表达式写法 :
在这里插入图片描述

🚦🚦🚦
不知道读者是否发现了, 匿名内部类方式实现函数式接口时, 实例化对象时, new关键字及后面的接口名是灰色的

原因是👉idea更推荐你使用 lambda表达式 的写法
如图:
在这里插入图片描述

🚦🚦🚦
现在大概可以理解了: Lambda表达式 就是匿名内部类的简化,无非就是创建了一个类,实现了接口,重写了接口的方法

🚗🚗🚗
匿名内部类 和 lambda表达式 使用时, 有一个需要注意的地方 : 变量捕获


三、 变量捕获

1, 匿名内部类 的变量捕获

无参无返回值的接口为例 :

📌在调用接口中的方法之前, 定义了两个变量 a , b 和一个常量 A , 尝试在方法中捕获 a , b 和 A
在这里插入图片描述

控制台打印 ;
a 的值是: 10
b 的值是: 20
A 的值是: 30

📌A是常量, 不能被修改, 我们只讨论变量 a , b , 如果更改变量 a, b 的值, 就无法捕捉这两个变量, 直接编译报错, 如图 :
在这里插入图片描述


2, lambda表达式 的变量捕获

📌和匿名内部类一致, 只是写法不同, 如果是没有修改过的变量, 或者常量是可以捕获的
在这里插入图片描述

控制台打印 ;
a 的值是: 10
b 的值是: 20
A 的值是: 30

📌如果修改了变量, 则不能捕获, 直接编译不通过
在这里插入图片描述


四、为什么要有 lambda表达式

各位读者应该可以很直观的感受到 lambda表达式 的优点:代码层次上来说,非常的精简,不止如此,它还有很多优点:
1️⃣代码简洁,如果熟悉函数式接口,将会提高开发效率
2️⃣在多线程编程中方便进行并行运算
3️⃣能够改善集合中的部分操作(集合中提供了很多函数式接口)

这些优点就说明了为什么要有 lambda 表达式,但它也有一些缺点
1️⃣代码可读性下降
2️⃣不容易进行代码调试

对于简单的 lambda 表达式使用起来还是很方便的, 对于可读性和代码调试的打击也不会太大, 但是如果使用复杂的lambda表达式进行编程, 上述两条缺点就会放大, 并且需要程序员对于函数式接口非常的熟悉


总结

以上就是本篇的全部内容啦,主要介绍了:

1,lambda表达式 的语法和使用方法
2,lambda表达式 和 匿名内部类 中的变量捕获
3,lambda表达式 的优缺点

如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~


上山总比下山辛苦
下篇文章见

http://www.fp688.cn/news/163889.html

相关文章:

  • 亚马逊做deal的网站百度关键词搜索热度查询
  • 建建建设网站公司网站如何做一个自己的网站
  • 广州做网站优化优化公司怎么优化网站的
  • 昆山网站网络营销的案例有哪些
  • 香港空间送网站seo公司赚钱吗
  • 做设计什么网站平台好点做私活百度推广投诉人工电话
  • 国际贸易网站建设互联网app推广具体怎么做
  • 自助建站公司衡水今日头条新闻
  • qplayer wordpress搜索引擎优化的方式
  • 杭州网站seo推广软件百度后台推广登录
  • 住房和城乡建设部网站建筑电工画质优化app下载
  • 美食网站建设设计方案如何优化培训体系
  • 网站建设方案详解株洲百度seo
  • wordpress 企业整站西安seo外包
  • 黄骅市人民法院网站seo站外优化
  • 做外贸网站挣钱吗北京百度快照推广公司
  • 网站开发vs2013微信腾讯会议
  • 做计划的网站月入百万的游戏代理
  • xxx网站建设规划书2345网址导航下载桌面
  • 麻城做网站西安seo专员
  • 像聚美网站建设费用手机优化是什么意思
  • 做公司年报网站登录密码是什么俄罗斯引擎搜索
  • 深圳做外贸网站网络营销招聘岗位有哪些
  • 网站模板下载工具16种营销模型
  • 网站架构怎么做潍坊自动seo
  • 学生做网站作品图片怎么做推广让别人主动加我
  • 在阿里云做视频网站需要什么条件互联网推广公司
  • 用于网站建设的费用怎么备注百度快照如何优化
  • 课程网站建设情况关键词大全
  • 美国最大的vps网站策划