我知道堆上的原语和对象,但是方法的数量如何影响对象的堆大小?
例如:
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 多个这些对象时,我想它可以加起来。