2

java -jar JAR_FILE.jarJVM がジョブを終了して復帰するまでに呼び出したときに正確に何が起こっているのか、順を追って説明する必要があります。

ホスト マシンで JVM を実行するためのステージの準備はどのように行われますか?
どのような関数が呼び出されますか? どのようなスレッドが作成されますか?
JVM がシャットダウンしようとするとどうなりますか?

4

1 に答える 1

1

これが私のステップのリストです。それは非常に高レベルです。

  1. JVMが起動し、GCが管理するさまざまなメモリ領域をセットアップします。また、いくつかのシステムスレッドもセットアップします。
  2. jarファイルのマニフェストを調べて、ロードするmainメソッドを持つクラスを判別します
  3. メインクラスをロードし、ロードされたばかりのクラスのバイトコードが正しく、不正な処理を行っていないことを確認します。
  4. ロードされるクラスに必要なクラスを解決し、ロードされる各クラスがステップ3と4を通過するクラスをロードします。
  5. mainメソッドのバイトコードを見つけて実行します。

これは本当に単純化されたリストであり、完全な詳細ははるかに具体的であり、おそらくJVMの実装に依存しています。

JVM仕様http://www.artima.com/insidejvm/ed2/よりも読みやすいものについては、この本Inside the Java Virtual Machine2ndEditionを参照することをお勧めします。

于 2012-08-16T22:53:44.723 に答える