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

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

interface Lambda {
    void doStuff();
}

// ...

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

// ...

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

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

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

见Sergey Kuksenko的JDK 8: Lambda Performance Study,这是74张幻灯片长。

摘要:慢到热身,但当JIT内联它最坏的情况下,像匿名类一样快,但可以更快。

http://stackoverflow.com/questions/24294846/performance-difference-between-java-8-lambdas-and-anonymous-inner-classes

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Java 8 lambdas和匿名内部类之间的性能差异