このarticleを読むと、各Javaアプリケーションが特定のJava仮想マシンインスタンスで実行されることがわかります。したがって、次のコマンド(「Java -jar test1.jar」、「Java -jar test2.jar」)を実行すると、システム内で2つのプロセスが取得され、各コマンドでデフォルトのヒープサイズ(256Mなど)を使用した場合。総メモリコストは、512Mで右 はまた、私は他の質問持っていることです:test1の-jar複数のjavaアプリケーションを実行する際にどのJava仮想マシンが実行するか
- は、システムで起動し、デーモンプロセスのJava仮想マシンです
- 私が実行すると、」javaの? .jar "を実行すると、Java仮想マシンのインスタンスが作成され、main関数が実行されます。実行中のすべてのJavaアプリケーションがJava仮想マシンのサブスレッドまたはプロセスであることを意味しますか?
- Javaアプリケーションは、 ationは、この実行中のJavaアプリケーションから変数、メソッド、定数などを取得できませんか?
- 実行中のJavaアプリケーションがクラッシュした場合、他の実行中のJavaアプリケーションに影響しますか?
PS:私はグーグル・グーグルで答えをたくさん得ました。私は全く混乱しました。この種の質問やJava仮想マシンの深みを助けてくれる人なら誰でも。例えば、それはどのように動作しますか?
矛盾しないが明確にする。コード(バイナリ)メモリページの再利用はOS機能であり、Java機能ではありません。 – SJuan76
@ SJuan76 - 説明が追加されました。 Thx –
@BrianAgnewここで私の別の質問は、私が知る限り、実行中のJavaアプリケーションはそれぞれ個別であり、それぞれに独自のメモリ使用量があります。しかし、 "-Xmsと-Xmx"オプションを使ってヒープサイズをどのように管理するのでしょうか?これはJVMメモリー・モデル(http://www.ibm.com/developerworks/aix/library/au-JavaPart2.html)の1つですが、私は読んだけど混乱しています。 – bannie