一尘不染

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

java

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

interface Lambda {
    void doStuff();
}

// ...

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

// ...

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

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


阅读 598

收藏
2020-09-08

共1个答案

一尘不染

甲骨文发布了一项研究,比较了Lambda和匿名类之间的性能

请参见Sergey Kuksenko撰写的JDK
8:Lambda性能研究
,该幻灯片长74张。

简介:预热缓慢,但是当JIT内联时,最坏的情况与匿名类一样快,但可以更快。

2020-09-08