lambda 查询大量数据速度很慢_lambda表达式速度如何呢?看完这篇文章你就明白了...

虽然Java 8已经出了好几年了,但是很多朋友可能对于其中的一些特性还是不太了解。甚至对lambda表达式这个特性可能会产生误解,误认为lambda表达式会影响程序的速度。其中也不乏很多误人子弟的自媒体传播这些错误的观点。

今天我看到一篇自媒体推送的文章,号称用Java字节码分析为什么lambda表达式速度慢,但是其中漏洞百出,搞得我忍不住写了这么一篇文章,为一些受到误导的朋友纠正一个概念:lambda表达式和普通的循环一样,不会影响到程序速度,大家可以放心使用。

因为头条压缩图片的缘故,所以对于小段代码,我用高亮代码图片的形式贴出。对于大段代码,直接贴代码,可能会影响大家的阅读体验。也希望头条能够允许上传高清图片,让大家的阅读体验更好一下。

lambda表达式是什么

可能还有一些朋友对lambda表达式还是不太清楚,所以我先介绍一下lambda表达式的概念。简单来说lambda表达式就是匿名函数,在一些支持匿名函数的语言中,用不用lambda表达式其实不是那么重要。但是因为Java不支持匿名函数,所以lambda表达式可以极大的简化这些场合的代码。

先来看看一个例子。假如我们需要在一个新线程中运行代码,可能需要创建一个新的Runnable对象。此处使用了Java的一项特性匿名内部类,创建了一个新的临时的Runnable对象。但是代码如你所见非常难看,大段的缩进和方括号,非常影响阅读。

如果换成了lambda表达式的实现,如你所见,代码非常干净整洁。

这种形如(a,b)->{ ..... }的表达式就是lambda表达式。上面已经提到过了,lambda表达式其实就是匿名函数,箭头前面的括号内部的就是函数的参数列表;箭头后面的括号内部的就是方法体,假如方法体只有一行语句或者表达式,方法体的括号可以省略。

lambda表达式参数的类型也不需要写明,编译器会自动从前面的类型中推断。在上面的例子中,因为Runnable中的run函数没有参数,所以lambda表达式自然也不需要参数。你可能会想到,假如类型中有多个函数怎么办呢?这时候编译器无法推断,程序就会报错。这也是Java lambda表达式的一个限制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值