- - PR -
JVMの動き
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-05 13:07
public class A{
public static boolean Check(String str){ //チェック処理 return true; } } という部品がありA.Check("20051010")と呼び出した場合のJVMの動きについて質問です。 @JVM起動…ヒープ領域を確保する AAスレッド起動…JVMスタック領域を確保 Bstaticメソッド呼び出し…初回アクセス時はAクラスをメソッドエリア(実行時コンスタントプール)にロードする CJVMスタックにフレーム生成…フレーム内のローカル変数領域にstrの参照を保持する(実体はヒープ領域にある。プリミティブ型の場合はスタック領域に実体も保持)その時フレーム内にクラスファイルへの参照も保持? Dチェックメソッド実行…ヒープ領域を参照しながらチェックが実行される 全体の処理としてはこんな感じだと思います。 【質問】 Dについて…実際に処理されるコードはフレームから参照するメソッドエリアのクラスファイル情報で処理されるのでしょうか?それともフレーム内にメソッドがありそのコードが実行されるのでしょうか?メソッドエリアとフレームの参照関係がよくわかりません。Cでフレームを生成した時点でクラスファイルへの参照も保持しているのでしょうか?また、フレーム内のオペランドスタックはどのような役割をしているのでしょうか? |
|
投稿日時: 2006-07-05 13:50
こっちは解決したんですか?
_________________ 己への戒め 「活動的な馬鹿より恐ろしいものはない」 by ゲーテ |
|
投稿日時: 2006-07-06 10:41
Jさん、こんにちは。
Java VMを実装したい方には、O'REILLY "Java Virtual Machine" を読んでみるのをお勧めしています。オーム社から邦訳も出てますよ。 |
1