До Java 8 функциональность лямбда могла быть достигнута с помощью анонимных внутренних классов. Например:
interface Lambda {
void doStuff();
}
// ...
public void doWithCallback(Lambda callback) {
// ...
callback.doStuff();
}
// ...
doWithCallback(new Lambda {
public void doStuff() {
// ...
}
});
Что касается производительности, существует ли разница между использованием этого подхода и использованием новых jambdas Java 8?