2

ヒープ上に存在するプリミティブとオブジェクトについて知っていますが、メソッドの数はオブジェクトのヒープサイズにどのように影響しますか?

例えば:

public class A {
    int x;
    public getX() { return x; }
}

public class B {
    int x;

    public getX() { return x; }
    public getXString() { return String.valueOf(x); }
    public doMoreInterestingStuff() { return x * 42; }
    //etc
}

インスタンス化されると、両方のオブジェクトがヒープ上に存在し、両方ともプリミティブxにメモリが割り当てられますが、メソッドシグネチャが多いため、Bにはより多くのヒープスペースが割り当てられますか?それとも、それらはpermGenスペースにのみありますか?この例では些細なことですが、いつでもメモリ内にこれらのオブジェクトが100,000以上あると、合計される可能性があると思います。

4

1 に答える 1

5

メソッドの数はオブジェクトのヒープサイズにどのように影響しますか?

そうではありません。オブジェクトごとのサイズに影響はありません。実際、その必要はありません。そのタイプの各オブジェクトに異なるメソッドがあるわけではありません。

明らかに、余分なメソッドは「どこか」(基本的にはクラスに関連付けられている) のメモリを占有しますが、オブジェクトごとではありません。

于 2012-06-27T15:12:40.733 に答える