Frage zum Garbage Collector

  • Themenstarter Themenstarter HollandHeute
  • Beginndatum Beginndatum
H

HollandHeute

Gast
Hallo,


Mein Kenntnisstand:
Wenn es auf eine Instanz keine Verweise mehr gibt, dann kann ihr Speicherbereich vom Garbage Collector.

Aber wie sieht das dann mit Klassenattributen aus? Belegen diese Klassenattribute dann immer den Speicherbereich - und das schon beim Start des Programms? Denn man kann ja (wenn das Klassenattribut sichtbar ist) von außen darauf zugreifen.

Oder ist das totaler Blödsinn??


Danke fürs Lesen! 😀
 
Nein Blödsinn ist das nicht.

Belegen diese Klassenattribute dann immer den Speicherbereich - und das schon beim Start des Programms?
Nein, erst wenn die Klasse zum ersten mal geladen (benutzt) wird. Das kannst du beispielsweise einfach mit folgender Klasse testen:
Java:
class StaticTest {
  static int x = 5;
  
  static {
    System.out.println("Ich wurde initialisiert");
  }
}
Den output solltest du erst bekommen sobald du das erste mal versuchst auf x zuzugreifen. Solche Klassen können vom Garbagecollector natürlich nicht aufgeräumt werden.
 
Danke für die Antwort. Und mit deinem Beispiel ist mir static noch ein wenig klarer geworden. 😀
 

Zurück
Oben