java - Java 8 lambda 和匿名内部类之间的性能差异

标签 java performance closures java-8

在 Java 8 之前,可以通过使用匿名内部类来实现 lambda 功能。例如:

interface Lambda {
    void doStuff();
}

// ...

public void doWithCallback(Lambda callback) {
    // ...
    callback.doStuff();
}

// ...

doWithCallback(new Lambda { 
    public void doStuff() { 
        // ... 
    } 
});

在性能方面,仍然使用这种方法和使用新的 Java 8 lambda 有区别吗?

最佳答案

Oracle 发布了一项比较 Lambda 和匿名类之间性能的研究

JDK 8: Lambda Performance Study由 Sergey Kuksenko 撰写,共有 74 张幻灯片。

总结:预热很慢,但当 JIT 内联时,最坏的情况与匿名类一样快,但可以更快。

关于java - Java 8 lambda 和匿名内部类之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24294846/

相关文章:

java - Jacob - Word 文件可以在 32 位中正确打开,但不能在 64 位中正确打开

java - 将文本插入生成的 pdf 文档

performance - RediSearch,创建单个索引好还是多个索引好?

actionscript-3 - AS3 闭包困惑

java - map 迭代出现问题

performance - symfony 性能问题

php - 具有多个 where 子句的 select 查询是否在一个结果表中返回多个结果行?

php - 在闭包函数参数PHP中添加类-引发未捕获的TypeError

JavaScript 顺序函数

java - 简单问题 - Java 中的 trace()?