Hallo,
ich hätte mal eine Frage zum Programmierstil:
Welche Lösung ist besser:
for(int i = 0; i
Hallo,
ich hätte mal eine Frage zum Programmierstil:
Welche Lösung ist besser:
for(int i = 0; i
Hallo,
ich hätte mal eine Frage zum Programmierstil:Welche Lösung ist besser:
for(int i = 0; i
na ja
Hallo zusammen
Ich vermute, dass der Speicherplatz für x in beiden Fällen zur
selben Zeit beim Aufruf der Methode angelegt wird. Somit auch
beim ersten Fall nur einmal, jedoch ist der Scope im ersten
Fall nur auf die for-Schleife beschränkt.
Nope, beim ersten Fall ist zwar der Scope beschränkt, jedoch werden 10 Objekte angelegt. Da der GC nicht jedesmal anspringt, wenn ein Objekt seinen Scope verliert, hat man also nach der Schleife 10 sinnlose Objekte rumliegen. Beim anderen Fall ist es 1 Objekt, dass nach der Schleife abgeräumt werden muss.
Irgendwo habe ich mal gehört, man sollte Variablen so lokal
wie möglich deklarieren sollte, ist aber wohl auch
Geschmackssache.
Grundsätzlich schon, aber bitte ausserhalb der Schleifen. Vor allem bei speicherintensiven Objekten in einer grossen Menge läuft ansonsten permanent der GC, der bekanntlich ja ressourcenintensiv ist.
Gruss
Andrea
Java Knigge von Michael Wiedekind
Hallo.
Wenn’s Euch interessiert: im Javamagazin gibt es eine Kolume namens ‚Java Knigge‘ von Michael Wiedekind. Online verfügbar unter: http://www.mathema.de/event/publikation/guidelines.html
Da wird sowas wie hier behandelt 
("
D also das Bild von dem Kerl mit dem erhobenen Zeigefinger ist zuuuu gut…*ROFL* ")
HTH
mfg M.L.
Beides ist richtig - oder falsch.
Wenn Du das Objekt in der Schleife brauchst solltest Du es hier anlegen. Legst Du es ausserhalb der Schleife an, kannst Du es auch ausserhalb noch verwenden.
Der Unterschied liegt also in der Sichtbarkeit des Objekts.
Gruß
Peter
Nope, beim ersten Fall ist zwar der Scope beschränkt, jedoch
werden 10 Objekte angelegt. Da der GC nicht jedesmal
anspringt, wenn ein Objekt seinen Scope verliert, hat man also
nach der Schleife 10 sinnlose Objekte rumliegen. Beim anderen
Fall ist es 1 Objekt, dass nach der Schleife abgeräumt werden
muss.
so stimmt das sicher nicht, denn der GC gibt ja keine lokalen Variablen frei sondern nur Objekte am Heap. Lokale Variablen werden erst beim beenden der Methode freigegeben.