Java8新特性的Lambda表达式为什么运行效率低?

本文探讨了Java8的Lambda表达式为何运行效率相对较低,通过对比普通循环与使用Lambda的循环执行时间,分析字节码指令,揭示Lambda在运行时需要额外时间的原因,涉及到invokedynamic指令和Lambda表达式的类生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lambda 表达式是 Java 8 的新特性,可神奇的是竟然有很多同学没有用过。Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的 lambda 抽象,是一个匿名函数,即没有函数名的函数。Lambda 表达式可以表示闭包。
在这里插入图片描述

一、准备

本人整理了20年面试题大全,包含spring、并发、数据库、Redis、分布式、dubbo、JVM、微服务等方面总结,下图是部分截图,需要的话点这里点这里,暗号优快云。
在这里插入图片描述

我为什么说Lambda表达式运行效率低

先准备一个list:

List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10000; i++) {
   
	list.add(i);
}

先用Lambda表达式的方式来循环一下这个list:

long lambdaStart = System.currentTimeMillis();
list.forEach(i -> {
   
	// 不用做事情,循环就够了
});
long lambdaEnd = System.currentTimeMillis();
System.out.println("lambda循环运行毫秒数===" + (lambdaEnd - lambdaStart));

运行时间大概为110ms

再用普通方式来循环一下这个list:

long normalStart = System.currentTimeMillis();
for (int i = 0<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值