0

プログラム 1: Java プログラムでオブジェクトを作成せずに単純なクラス B を 1 つ作成したとき。JVM がメンバー フィールドとメンバー関数を含むクラス コードにメモリを割り当てる方法。

class B
{
     int a=10;
     public void print()
     {
         System.out.println("inside B class");
     }

}

プログラム2:そして、そのクラスのオブジェクトを作成すると、jvmがオブジェクトにメモリを割り当てる方法...以下のコードを参照

class B
{
    int a=10;
    public void print()
    {
        System.out.println("inside B class");
    }

    public static void main(String args[])
    {
        B b=new B();
        b.print();

    }
}
4

2 に答える 2

2

この例では、3つのレベルの割り当てがあります。

  • クラスがロードされると(通常、コード内のどこかで初めて参照されるとき)、その構造、コード、および静的フィールドのメモリが割り当てられます。

  • インスタンスが作成されると(new B())、非静的フィールドと一部のメタデータ(オブジェクトヘッダー)のメモリが割り当てられます。このメモリはヒープ上にあります。

  • メソッドが呼び出されると、スタックのメモリがそのメソッド内のローカル変数に割り当てられます。

于 2012-08-23T08:47:56.273 に答える
2

このサイトは非常に有益なので、リンクを見てください.jvmがどのようにプログラムを実行するかを理解することができます.

于 2012-08-23T09:22:46.263 に答える