Java Variable "löschen"

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
556
Hallo,
wie kann ich in Java Variablen löschen.

Wenn es sich um komplexe Datentypen handelt kann ich sie einfach auf null setzen.
Also z.B.
Code:
int[] test = new int[8];
test=null;

Aber bei primitiven Datentypen zeigt er mir einen Fehler.
Wie lösche ich also diese?
Code:
int i;
//nun will ich i löschen, geht das?

Grüße yxy
 
Lokale Variablen werden beim Verlassen des jeweiligen Scopes ungültig. Ein explizites Löschen ist weder erforderlich, noch möglich.
 
Werden also auch nach einem Schleifendurchlauf alle Variablen gelöscht?

while(true){
int i;
}

Wäre dann möglich?
 
Korrekt, in diesem Fall ist i nur im Rahmen eines einzelnen Schleifendurchlaufs gültig. Wenn die Variable über mehrere Durchläufe hinweg existieren und ihren Wert behalten soll, muss sie außerhalb des Schleifenkörpers definiert werden.
 
Das ist korrekt. Im Endeffekt räumt der GC alles auf, was nicht mehr erreichbar ist.
Es gibt dennoch ein paar Ausnahmen, meistens wenn Systemressourcen mit im Spiel sind.
Beispielsweise sollte man von einem nicht benötigten BufferedImage immer die flush() Methode aufrufen.
 
Und Java wendet die Garbage Collection an?

EDIT:
"Weitere Beispiele für Programmiersprachen mit einer automatischen Speicherverwaltung sind ... alle Sprachen, die auf der Java Virtual Machine (JVM) ablaufen (Java, Groovy, Clojure, Scala, …) sowie die für die Common Language Runtime von .NET entwickelt wurden (zum Beispiel C# oder VB.NET). "

Also Ja. :)
 
Zuletzt bearbeitet:
Ja, aber Garbage Collection bezieht sich grundsätzlich nur auf Objekte, die auf dem sog. Heap angelegt werden, also insbesondere solche, die mit new erzeugt werden. Für lokale Variablen wie dein i (die liegen auf dem sog. Stack) ist das nicht notwendig, da ihre Gültigkeit wie gesagt automatisch endet, sobald der Scope verlassen wird.
 
Zurück
Oben