我了解存在于堆上的基元和对象,但是方法的数量如何影响对象的堆大小?
例如:
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 个这些对象时,我想它可能会增加。
最佳答案
how does the number of methods effect heap size of the object?
事实并非如此。它对每个对象的大小没有影响,实际上也没有必要 - 它不像该类型的每个对象都有不同的方法。
显然,额外的方法会在“某处”占用内存(基本上与类相关),但它不是基于每个对象。
关于java - Java 堆中对象的大小以及方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229405/