Java statische Variable und Prozess

8

Wenn ich eine Variable static deklariere und diese Klasse in ein ausführbares jar kompiliere. Wenn ich diese Klasse mit einer Batch-Datei wie folgt starte:

%Vor%

Würden alle 3 Prozesse dieselbe Variable verwenden?

    
youcanlearnanything 29.04.2012, 12:46
quelle

2 Antworten

16

Nein. Die statische Variable ist spezifisch für die JVM-Instanz. Mehr noch, in der Tat - es ist spezifisch für den Klassenlader , der die Klasse lädt. Wenn Sie also drei separate Klassenladeprogramme erstellt haben, von denen jedes für das Laden von MyClass verantwortlich ist (und nicht nur an ein gemeinsames übergeordnetes Element delegiert wird), hätten sie jeweils eine separate, unabhängige statische Variable in MyClass .

    
Jon Skeet 29.04.2012, 12:47
quelle
2

Statische Ressourcen sind pro Klassenlader und daher haben Ihre 3 Prozesse offensichtlich drei verschiedene Klassenlader und würden daher die Variablen nicht teilen.

    
arya 29.04.2012 12:49
quelle

Tags und Links