Hi Leute, ich habe eine Frage zu dem folgenden Java Programm:
In der Zeile in der ich einen Kommentar eingefügt habe, wird ja explizit ein String Objekt erzeugt. Dieses geschieht insgesamt 10mal (ist ja definiert in der for-schleife).
Meine Frage: Werden jetzt eigentlich insgesamt 10 Objekte im Speicher abgelegt oder nur eins? Wenn es 10 sind, kann ich die dann alle über name ansprechen? Verweist die Referenzvariable name bei jedem Schleifendurchlauf auf ein neues Objekt und die alten werden gelöscht?
Hier meine Frage zu dem Singletonmuster:
Warum ist hier die Instanzvariable instance mit static deklariert? Warum kann ich stattdessen nich einfach "private Singleton instance;" schreiben?
Danke euch für die Mithilfe!
Java:
public static void main (String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("Objekt Nummer" + i + "wird jetzt erzeugt");
String name = new String(); //Hierzu meine Frage
}
}
In der Zeile in der ich einen Kommentar eingefügt habe, wird ja explizit ein String Objekt erzeugt. Dieses geschieht insgesamt 10mal (ist ja definiert in der for-schleife).
Meine Frage: Werden jetzt eigentlich insgesamt 10 Objekte im Speicher abgelegt oder nur eins? Wenn es 10 sind, kann ich die dann alle über name ansprechen? Verweist die Referenzvariable name bei jedem Schleifendurchlauf auf ein neues Objekt und die alten werden gelöscht?
Hier meine Frage zu dem Singletonmuster:
Java:
public class Singleton{
private static Singleton instance;
private Singleton(){
System.out.println("Im Konstruktor");
}
public static Singleton getSingleton(){
if(instance == null){
instance = new Singleton();
}
else
System.out.println("Fehler !");
return instance;
}
}
Warum ist hier die Instanzvariable instance mit static deklariert? Warum kann ich stattdessen nich einfach "private Singleton instance;" schreiben?
Danke euch für die Mithilfe!
Zuletzt bearbeitet: