0

static関数とメンバーに割り当てられるメモリは 1 回だけであり、新しいオブジェクトが作成されるたびにクラス変数に新しいメモリ空間が与えられることを知っています。

newこの次の問題で演算子を使用すると、クラス変数用に 8 バイトが得られます。しかし、メモリはいつint c割り当てられますか? コンパイル時?

class A
{
    int a,b;

    void show()
    {
        int c;
    }

    public static void main(String...s)
    {
        new A().show();
    }
}
4

2 に答える 2

3

メソッド呼び出しとローカル変数はスタックに格納されます。オブジェクト (インスタンス変数を含む) はヒープに格納されます。したがって、以下を使用して作成されたオブジェクト:

new A()

メソッドを呼び出すと、ヒープに格納され、showメソッド ローカル変数cが作成され、スタックに格納されます。

Java でのスタックおよびヒープ メモリ管理の詳細については、この画像を確認してください。

ここに画像の説明を入力

于 2013-09-14T05:40:11.307 に答える
2

関数のローカル変数用のメモリは、関数が呼び出されるたびにスタックに割り当てられます。

于 2013-09-14T05:32:42.810 に答える