メソッドAはメソッドBを呼び出し、JVMはどのように段階的に呼び出されますか

 

まず、メソッドAがメソッドBのバイトコードを呼び出し、PCが現在のスタックフレームのバイトコードの実行位置を記録し、メソッドBが呼び出されると、Bスタックフレームの構築時にBスタックフレームが返されます。アドレスは、呼び出しに戻るためにバイトコード実行の位置に割り当てられ、対応するメソッドBのローカル変数テーブルにパラメーターを格納し、メソッドBを現在のスタックフレームに設定し、設定pcを呼び出されるメソッドに設定します。メソッドの最初の命令のオペコードは、メソッドの最初の命令から実行され続け、実行が完了すると(通常の戻りまたは異常な戻り)、メソッドが呼び出された位置に戻ります。現在のスタックフレームに対して、PCはAの元のバイトコード実行位置に戻り、実行を続けます。

 

JVM仕様のスクリーンショット:

 

 

 

JAVA仮想マシンの詳細な理解、周志明のスクリーンショット:

 

 

おすすめ

転載: www.cnblogs.com/feibazhf/p/12749205.html