2017-02-17 10 views
3

物理マシンでJavaアプリケーションを起動した後、2番目のJavaアプリケーション、3番目のアプリケーションなどを起動すると...Java仮想マシン:共有しているか、すべてのアプリケーションを所有していますか?

新しいJava仮想マシンが起動するたびに実行されます。だから、すべてのアプリはそれ自身のJVMを持っているのですか?

または、物理マシンのオペレーティングシステムによって拡大された最初のJVMに割り当てられたメモリで、すべてのアプリケーションが1つのJVMで実行されていますか? 常に1つのJVMしか存在しないようにします。

+0

参照:http://stackoverflow.com/questions/20307500/how-many-java-virtual-machine-extst-on-computer?rq=1 – zed

+0

[こちら](http://stackoverflow.com)/questions/5947207/is-there-one-jvm-per-java-application)、これまでに同じ質問がありました。 – theasianpianist

答えて

-1

新しいJavaアプリケーションが起動するたびに、新しいJVMインスタンスが作成されます。このJVMインスタンス内でアプリケーションが実行されます。

2

実際にアプリケーションを起動するときは、新しいJVMを起動し、コマンドライン引数でクラスを実行するように指示します。

しかし、サーブレットコンテナ内で実行されるWebアプリケーションでは、各アプリに独自のクラスローダーがあるため、静的変数のコンテンツは共有されません。これは、それぞれが別のJVM上で動作するという印象を与えることができます。

2

JVM - JREのインスタンス。アプリケーションを実行すると、新しいJVMが初期化されます。アプリケーションが終了した後、ガベージコレクタによってインスタンスが削除されます。

関連する問題