我知道我总是发布一个类似的关于数组内存使用的问题,但是现在我想发布更具体的问题。
看完这篇文章后:usage.shtml
我不明白一些事情:
发布于 2010-06-07 11:02:32
一个int总是32位。但是,JVM规范并不要求对象的字段被连续地存储在内存中。因此,64位JVM可能会在64位边界上对齐int字段。(当然,Sun 32位JVM在32位边界上对齐8位和16位字段!)
发布于 2010-06-07 10:22:23
首先,是的,一个int将始终是32位,按照语言规范。
您不应该(IMO)在类本身的内存使用中包含引用本身,因为它不是对象的一部分。特别是,您不知道有多少地方会引用同一个对象:如果10个不同的对象每个存储一个对您的对象的引用,您将最终支付10倍的引用费用。但是,在计算存储它的任何东西的成本时,您应该考虑到引用--因此,如果您有一个具有引用的字段的类,那么就计算那里的成本。(同样,如果要计算堆栈空间,请考虑局部变量。)
https://stackoverflow.com/questions/2988623
复制相似问题