10

変数staticを宣言し、このクラスを実行可能jarにコンパイルした場合。このようなバッチファイルを使用してこのクラスを開始すると、次のようになります。

java MyClass
java MyClass
java MyClass

3つのプロセスすべてが同じ変数を共有しますか?

4

2 に答える 2

20

いいえ。静的変数はJVMインスタンスに固有です。それ以上に、実際には、クラスをロードするクラスローダーに固有です。したがって、3つの個別のクラスローダーを作成し、それぞれがMyClass(共通の親に委任するだけでなく)ロードを担当する場合、それぞれに個別の独立した静的変数がありMyClassます。

于 2012-04-29T12:47:56.837 に答える
2

静的リソースはクラスローダーごとであるため、3つのプロセスには明らかに3つの異なるクラスローダーがあり、変数を共有しません。

于 2012-04-29T12:49:47.347 に答える