Hallo Leute,
mich würde mal interessieren wie der Garbage Collector sich in Schleifen verhält:
In diesem Beispiel wird die Variable foo ja im Prinzip in jedem neuen Schleifendurchgang neu intialisiert.
Hier hingegn:
wird nur einmal die Variable definiert und dann nur neu gesetzt. Macht das einen Unterschied für den GC, oder optimiert der Compiler das eh weg?
Wann genau wird der Speicherplatz von "foo" im ersten Beispielen frei? Erst wenn der GC sich einschaltet, oder wird in beiden Beispielen kein neuer Speicherplatz angefordert, sondern der alte Wert von "foo" vergessen?
Danke für eure Hinweise,
Zender
mich würde mal interessieren wie der Garbage Collector sich in Schleifen verhält:
Code:
for (int i=0; i<10000; i++)
{
Integer foo = i*2;
doSomething(foo);
}
In diesem Beispiel wird die Variable foo ja im Prinzip in jedem neuen Schleifendurchgang neu intialisiert.
Hier hingegn:
Code:
Integer foo;
for (int i=0; i<10000; i++)
{
foo = i*2;
doSomething(foo);
}
wird nur einmal die Variable definiert und dann nur neu gesetzt. Macht das einen Unterschied für den GC, oder optimiert der Compiler das eh weg?
Wann genau wird der Speicherplatz von "foo" im ersten Beispielen frei? Erst wenn der GC sich einschaltet, oder wird in beiden Beispielen kein neuer Speicherplatz angefordert, sondern der alte Wert von "foo" vergessen?
Danke für eure Hinweise,
Zender