Wenn ich eine Sammlung mit dem neuen syntaktischen Zucker von Java 8 durchlaufe, wie z
myStream.forEach(item -> {
// do something useful
});
Entspricht dies nicht dem folgenden "alten Syntax" -Schnipsel?
myStream.forEach(new Consumer<Item>() {
@Override
public void accept(Item item) {
// do something useful
}
});
Bedeutet dies, dass Consumer
jedes Mal, wenn ich eine Sammlung durchlaufe , ein neues anonymes Objekt auf dem Heap erstellt wird? Wie viel Speicherplatz benötigt dies? Welche Auswirkungen auf die Leistung hat es? Bedeutet das, dass ich beim Durchlaufen großer mehrstufiger Datenstrukturen lieber den alten Stil für Schleifen verwenden sollte?