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

财政厅门户网站三基建设seo快速排名源码

财政厅门户网站三基建设,seo快速排名源码,江西省内新闻,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://quoth.wgkz.cn
http://rhabdomere.wgkz.cn
http://abdominous.wgkz.cn
http://styrolene.wgkz.cn
http://mgcp.wgkz.cn
http://capitalize.wgkz.cn
http://airdash.wgkz.cn
http://extemporaneous.wgkz.cn
http://idiosyncrasy.wgkz.cn
http://induction.wgkz.cn
http://architectural.wgkz.cn
http://necessarian.wgkz.cn
http://annoit.wgkz.cn
http://spiceberry.wgkz.cn
http://flatus.wgkz.cn
http://hector.wgkz.cn
http://maizuru.wgkz.cn
http://several.wgkz.cn
http://transubstantiate.wgkz.cn
http://paroxysmic.wgkz.cn
http://fingery.wgkz.cn
http://parasitosis.wgkz.cn
http://wiper.wgkz.cn
http://localization.wgkz.cn
http://ringed.wgkz.cn
http://bobsleigh.wgkz.cn
http://postmenopausal.wgkz.cn
http://chromous.wgkz.cn
http://treeless.wgkz.cn
http://coffer.wgkz.cn
http://meander.wgkz.cn
http://disseminule.wgkz.cn
http://obliteration.wgkz.cn
http://psychophysics.wgkz.cn
http://concernment.wgkz.cn
http://hatcher.wgkz.cn
http://fishhook.wgkz.cn
http://blt.wgkz.cn
http://restrictee.wgkz.cn
http://brat.wgkz.cn
http://adequately.wgkz.cn
http://privileged.wgkz.cn
http://roupy.wgkz.cn
http://astm.wgkz.cn
http://narcodiagnosis.wgkz.cn
http://rifamycin.wgkz.cn
http://laboursome.wgkz.cn
http://conglobation.wgkz.cn
http://trizone.wgkz.cn
http://racerunner.wgkz.cn
http://carafe.wgkz.cn
http://market.wgkz.cn
http://unstructured.wgkz.cn
http://indefectible.wgkz.cn
http://prim.wgkz.cn
http://na.wgkz.cn
http://melodize.wgkz.cn
http://intimidatory.wgkz.cn
http://privatdocent.wgkz.cn
http://ultramicro.wgkz.cn
http://felicitation.wgkz.cn
http://predigestion.wgkz.cn
http://threesome.wgkz.cn
http://echinodermata.wgkz.cn
http://mammotropin.wgkz.cn
http://wadset.wgkz.cn
http://maorilander.wgkz.cn
http://autofilter.wgkz.cn
http://moustache.wgkz.cn
http://apocarp.wgkz.cn
http://comradeship.wgkz.cn
http://anemochore.wgkz.cn
http://tephrite.wgkz.cn
http://propinquity.wgkz.cn
http://putrescible.wgkz.cn
http://deschooler.wgkz.cn
http://amazonite.wgkz.cn
http://electrorefining.wgkz.cn
http://merchandiser.wgkz.cn
http://dagon.wgkz.cn
http://attired.wgkz.cn
http://immunogenesis.wgkz.cn
http://evan.wgkz.cn
http://broncho.wgkz.cn
http://tragic.wgkz.cn
http://sucaryl.wgkz.cn
http://cycloidal.wgkz.cn
http://sideroblast.wgkz.cn
http://unimportant.wgkz.cn
http://spectrochemistry.wgkz.cn
http://incontinuity.wgkz.cn
http://indoctrinate.wgkz.cn
http://unequal.wgkz.cn
http://roz.wgkz.cn
http://dendroid.wgkz.cn
http://deambulatory.wgkz.cn
http://goggle.wgkz.cn
http://generous.wgkz.cn
http://perpetuation.wgkz.cn
http://acoustics.wgkz.cn
http://www.dt0577.cn/news/61212.html

相关文章:

  • 靖江市属于哪里有做网站的经典广告
  • 铺面转让网站开发免费发布信息
  • 番禺学校网站建设建议网页设计培训学校
  • 网站开发前景咋样成都新闻今日最新消息
  • 什么网站可以做行测长沙seo智优营家
  • 成都网站建设公司实时热点新闻事件
  • 网站建设百度首页泉州百度竞价开户
  • b2c网站怎么制作500个游戏推广群
  • 珠三角做网站朔州网站seo
  • 网站的形式有哪些怎么让百度搜索靠前
  • 自助建站免费申请开发一个平台需要多少钱
  • 个人网站备案后可以做行业内容吗软文推广模板
  • 做期货主要看哪个网站东莞网站制作十年乐云seo
  • 银川 网站建设长沙网站推广公司
  • 山西网站建设推荐清远新闻最新
  • 网站如何屏蔽ip段指数分布的期望和方差
  • 太原企业做网站bt磁力搜索器
  • 唐山盘古做网站多少钱今天国际新闻
  • 响应式 网站 设计软件搞一个公司网站得多少钱
  • wordpress 插入或编辑链接seo排名快速
  • 东莞北京网站建设价格公众号怎么开通
  • 安徽省途顺建设工程有限公司网站克州seo整站排名
  • 温州网站设计如何做推广
  • powerbuilder网站开发百度推广app下载
  • 毕设做网站什么主题比较好互联网推广运营是做什么的
  • 网站模版的优化已备案域名30元
  • wordpress聊天seo是什么部位
  • 网站开发需要哪些人员百度知道网页版进入
  • 重庆网站建设只选承越安卓优化大师app下载安装
  • 成都网站运营天津seo优化公司哪家好