Löschen von Elementen in einem Array?

Es geht um die Programmiersprache Java....

Ich habe einen Array in dem ich Objekte speichere:

Cell [] test = new Cell [10];
test [1] = new Cell (1,1,true);
System.out.print(test[1]);

Wenn ich nun meinen Array auf null setze:
test = null;

.. Werden dann die dort befindlichen Objekte auch gelöscht?

2008-11-29T06:36:35Z

Anmerkung: Cell ist eine Klasse. Und in dem Array findet sich lauter Cell Objekte.....

Paul C2008-11-29T11:30:15Z

Beste Antwort

In Java, wie auch unter .NET wird Spaicher, der nicht mehr referenziert wird von der Garbage-Collection freigegeben. Wenn du also keine andere Variable hast, die exakt dieselben Objekte referenziert, werden die Objekte wahrscheinlich nach ein paar Millisekunden von der Garbage-Collection entsorgt. Unter .NET kann man auch das Interface IDisposable impllementieren, ich weiss aber net ob es sowas auch in java gibt.
Wenn du noch weitere Informationen lieferst, warum du wissen musst, ob die Objekte zerstört werden, dann kann ich dir sicher auch genaueres sagen.

Paul

Anonym2008-11-29T07:08:57Z

na ja probiers doch einfach aus, was passiert denn, wenn du nach
test=null; System.out.println(test[1]); eingibst. Tipp: NullPointerException bedeutet du greifst auf eine Referenz zu, die zu keinem Object führt.
Zwei grooooose Vorteile von Java: Zeiger gibts in Java nicht und der Garbage Collector
löscht vollautomatisch alle Objecte auf die es keine Referenz mehr gibt.

stools of a magician2008-11-29T06:34:18Z

Nunja bei Java weiß nicht so genau aber du lehrst ja nicht den Speicher sondern nur den Verweis daruf (interessiert aber erst bei Klassenprogrammierung und Zeigern usw.) Also müsste der Inhalt noch im Speicher sein. Oeder was macht eigentlich die Cell-Funktion. Ist das deine eigene oder ne fertige Funktion?