Lambda 表达式是 Java 8 的新特性,可神奇的是竟然有很多同学没有用过。Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的 lambda 抽象,是一个匿名函数,即没有函数名的函数。Lambda 表达式可以表示闭包。
一、准备
本人整理了20年面试题大全,包含spring、并发、数据库、Redis、分布式、dubbo、JVM、微服务等方面总结,下图是部分截图,需要的话点这里点这里,暗号CSDN。

我为什么说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 =

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


3769

被折叠的 条评论
为什么被折叠?



