Hallo zusammen, ich habe eine Frage in Bezug auf den Garbage-Collector. In diesem Fall bin ich mir nicht mehr so richtig sicher wie er in meinem speziellen Fall funktioniert. Ich habe 2 Experten gefragt, welche mir dazu unterschiedliche Meinungen hatten. Beide sind wie gesagt Experten was es für mich nicht einfacher macht.
Also es wäre schön wenn möglichst viele Leute ihren Senf dazugeben würden. Danke im Voraus ;-)
Mein Kleines Beispiel besteht aus 2 Klassen:
und
Die erste Klasse heisst nur aus Zufall Logger, weil sich darin z.B. auch ein LoggerOBJ befinden könnte. Der Einfachheit halber habe ich darin einfach einen kleinen String abgespeichert.
Die zweite Klasse namens Main soll das Hauptprogramm darstellen.
Zur Klasse Logger:
Hier ist dabei zu achten, dass die einzige Membervariable statisch ist. Das würde bedeuten sie würde bei jedem Constructoraufruf überschrieben und existiert für meinetwegen 10 Objekte nur ein mal.
Des weiteren gibts einen Constructor(natürlich dynamisch)
und ... eine statische Methode, welche mein OBJ zurückliefert und später folgendermassen aufgerufen werden kann: Logger.getStr()
Zur Klasse Main:
Dieses Einfache Beispiel ist ja selbsterklärend!
ABER: Stellt euch einfach vor das Programm ist SehrSehrSehr-Gross und besteht aus; sagen wir 1000Klassen, welche die verschiedensten Teilaufgaben übernehnen.
UND: zwischen den beiden gezeigten Aufrufen liegt ein halbes Jahr
Jetzt kommts:Ist sichergestellt, dass der GC meine variable "myString" am Leben erhällt?
(viele Antworten unterschiedlichster Personen erwünscht)
vielen Dank fürs lange lesen und beantworten ;-)
Also es wäre schön wenn möglichst viele Leute ihren Senf dazugeben würden. Danke im Voraus ;-)
Mein Kleines Beispiel besteht aus 2 Klassen:
Code:
public class Logger {
private static String myString;
public Logger(String str) {
myString=str;
} // end Logger()
public static String getStr() {
return myString;
} // end getStr()
} // end Logger
und
Code:
public class Main {
public static void main(String[] arschparade) {
new Logger("Hallo2");
//Ist das Zufall oder kommt hier irgendwann noch mal der GC vorbei
System.out.println(Logger.getStr());
} // end main()
} // end Main
Die erste Klasse heisst nur aus Zufall Logger, weil sich darin z.B. auch ein LoggerOBJ befinden könnte. Der Einfachheit halber habe ich darin einfach einen kleinen String abgespeichert.
Die zweite Klasse namens Main soll das Hauptprogramm darstellen.
Zur Klasse Logger:
Hier ist dabei zu achten, dass die einzige Membervariable statisch ist. Das würde bedeuten sie würde bei jedem Constructoraufruf überschrieben und existiert für meinetwegen 10 Objekte nur ein mal.
Des weiteren gibts einen Constructor(natürlich dynamisch)
und ... eine statische Methode, welche mein OBJ zurückliefert und später folgendermassen aufgerufen werden kann: Logger.getStr()
Zur Klasse Main:
Dieses Einfache Beispiel ist ja selbsterklärend!
ABER: Stellt euch einfach vor das Programm ist SehrSehrSehr-Gross und besteht aus; sagen wir 1000Klassen, welche die verschiedensten Teilaufgaben übernehnen.
UND: zwischen den beiden gezeigten Aufrufen liegt ein halbes Jahr
Jetzt kommts:Ist sichergestellt, dass der GC meine variable "myString" am Leben erhällt?
(viele Antworten unterschiedlichster Personen erwünscht)
vielen Dank fürs lange lesen und beantworten ;-)