Wieso Grundsatzdiskussion?
In Java braucht man sich nur dahingehend darum kümmern, dass man nicht zu viele Objekte erzeugt und einen gewissen Überblick behält, wie die Referenzen gesetzt sind. Ein Objekt wird garbage collected, wenn es null ist und kein anderes Objekt mehr eine Referenz auf es hält (wenn ich mich recht erinnere).
Bei Notes-Objekten ist das ein bischen anders. Man braucht diese recycle()-Methode.
Speicherallokation ist im Grunde ein Scope/Lebenszyklus-Problem.
Objekte haben im Programm meist sehr unterschiedliche Lebenszyklen.
Schleifen besitzen nun einen klar definierten engen scope der mehrmals durchlaufen wird.
Objekte, die im scope des Schleifenkörpers erzeugt wurden, haben einen Lebenszyklus von genau einer Iteration dieser Schleife.
In
for (int i=0; i < 10; i++) {
Document doc = vw.getNthDocument(i)
}
werden über die eine Zeile in der Schleife eine
Menge lokaler Objekte erzeugt, die nur für genau eine Iteration der Schleife im aktiven scope sind und danach nicht mehr gebraucht werden. Man kann sie auch nicht referenzieren. Sie sind lebenszyklustechnisch eindeutig auf dem Weg in den Himmel (katholisch gesprochen).
Zwar verweist immer die gleiche Referenzvariable auf besagte Objekte. Die Objekte sind aber unterschiedlich!!!
In Java ist das ein geringeres Problem, da sie automatisch garbage-collected werden. Notes-Java-Objekte benötigen aber den Aufruf von recycle(), um wirklich garbage collected werden zu können (vereinfacht gesprochen).
Wegen dem schnellen scope-Wechsel in Schleifen, macht der häufige Aufruf von recycle() sehr viel Sinn und das ist in keinster Weise eine irgendwie unscharfe Idee.
So ungefähr jedenfalls.