2009-07-02 2 views
0

Javaでは、クラス 'Foo'に非静的メソッド 'bar()'があるとします。Java Object Method Stack Frame Parameters

class Foo 
{ 
    private int m_answer; 

    public Foo() 
    { 
     m_answer = -1; 
    } 

    public void bar(int newAnswer) 
    { 
     m_answer = newAnswer; 
    } 
} 

言ってやるが、あなたはそのように、このメソッドを呼び出すこと:

Foo myFoo = new Foo(); 
myFoo.bar(42); 

今すぐコールのスタックフレームは、整数パラメータを含んでいるだけでなく、「この」パラメータは、内部として使用されるようにオブジェクトへの参照。

'this'とメソッドパラメータに加えて、他の興味深いパラメータが新しいスタックフレームにコピーされますか?

。通常

答えて

1

呼び出し命令へのポインタなので、VM(この場合には、ネイティブアプリでCPU)は、命令ポインタを設定する場所を知っている(またはPC - Program Counter)ので、スタックが正しく

を展開することになるだろうということ