Seite 1 von 1

Speicherplatz freigeben in Java

Verfasst: Do Dez 23, 2010 11:26 am
von detewe89
Hi an alle,

wir müssen in Informatik eine Klasse "Mailbox" schreiben, die eingegangene eMails verwaltet und ausgibt.

Eine Methode "retrieveMails()" soll so implementiert werden, dass sie alle neuen eMails mithilfe der klasseneigenen Methode printString() ausgibt und dann den Posteingang leert (die eMails liegen alle in einem Array des Typs Mail[] )

Dieses "Leeren des Postfachs" hab ich einfach so realisiert, dass ein neues Array der Länge 0 erzeugt wird und das alte Mail-Array damit überschrieben wird. Ist dies die beste Methode? (zumindest funktioniert sie...)

Hier die Methode

Code: Alles auswählen

  public Mailbox retrieveMails(String username, String password) {
   
    if (username.equals(this.username) && password.equals(this.password)) {
	
	this.printString();
	this.mails = new Mail[0];
	return this;
	
    }
    
    else return null;
  }
Vielen Dank für eure Hilfe :)
Daniel

Re: Speicherplatz freigeben in Java

Verfasst: Do Dez 23, 2010 11:54 am
von Kerli
Das ist eigentlich die einzige Methode in Java, da es hier keine manuelle Speicherverwaltung gibt. Alternativ könntest du auch einen Container für die Mails verwenden und die 'clear'-Methode zum Leeren verwenden, wobei es aber intern vermutlich genau gleich funktionieren wird.

Re: Speicherplatz freigeben in Java

Verfasst: Do Dez 23, 2010 11:57 am
von Dirty Oerti
Ja, das ist (unter Verwendung des Default Garbage Collectors, irgendwie soll man da wohl was ändern können, frag mich aber nicht wie) die absolut einzige Methode.
Sobald du die Referenz auf das Array löscht, wird das Array an den Garbage Collector übergeben.
Wenn der dann sieht, dass nichts anderes mehr das Array referenziert, dann löscht er es, und damit auch die darin enthaltenen Elemente (zumindest, wenn sie nicht wo anders referenziert wurden)