Hallo zusammen,
wenn ich in einer Klasse Variablen als static definiere, dann wird für diese doch nur einmal Speicherplatz reserviert. Oder wird Java-intern in jeder Instanz dieser Klasse doch Speicherplatz für diese Variablen belegt?
Wie ist das bei static-Methoden?
Hoffe, ich habe mich verständlich genug ausgedrückt.
Danke für eure Mühe,
Matthias
Hallo Matthias,
static Variablen und Methoden existieren nur einaml im Adresseraum der VM. Damit sind die Varaibalen „gobal“ was auch zu entsprechenden Problemen führen kann. Bei den statischen Methoden ist es ganauso. Die bekannteste ist die public static void main die gibt nur einaml auch wenn Sie in mehreren Klassen definiert worden ist.
m.f.g.
Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
static Variablen und Methoden existieren nur einaml im
Adresseraum der VM. Damit sind die Varaibalen „gobal“ was
auch zu entsprechenden Problemen führen kann. Bei den
statischen Methoden ist es ganauso. Die bekannteste ist die
public static void main die gibt nur einaml auch wenn Sie in
mehreren Klassen definiert worden ist.
static beschränkt sich auf die Klasse, nicht die VM, das gilt auch für Methoden, d. h. du kannst in beliebig vielen Klassen eine Methode public static void main deklarieren.
Natürlich kannst du beim Programmstart nur eine anstarten, aber im Programmablauf kannst du ohne Probleme selbige Methode anderer Klassen aufrufen.
Grüße, Robert