谁能让我理解java中的术语“对象头”和“填充”?
class A{
int a;
}这里的“对象标题”和“填充”是什么?
发布于 2015-06-12 01:54:51
"Padding“是Java语言中对象由于内存对齐而趋于8的倍数的趋势:Why do Java objects have to be a multiple of 8?
Java中的所有对象都包含一个"object header“,其中包含一些额外的开销信息(导致它们占用一些额外的空间):What is in java object header
因此,在您的示例中,class A的标头将占用空间,同时还需要容纳其字段int a的空间。如果这两个值的总和不是8的倍数,则会向内存位置添加额外的空间,以便它是8的倍数,从而在内存中正确对齐。
https://stackoverflow.com/questions/30787814
复制相似问题