【问题标题】:what is object header and padding in javajava中的对象头和填充是什么
【发布时间】:2015-08-27 13:30:59
【问题描述】:

谁能让我理解java中的“对象头”和“填充”这个词?

class A{

int a;

}

这里会有什么“对象头”和“填充”?

【问题讨论】:

标签: java memory-management


【解决方案1】:

“填充”是Java中对象由于内存对齐而成为8的倍数的趋势:Why do Java objects have to be a multiple of 8?

Java 中的所有对象都包含一个带有一些额外开销信息的“对象头”(导致它们占用一点额外空间):What is in java object header

因此,在您的示例中,class A 的标头将占用空间以及保存其字段 int a 所需的空间。如果这两个值加起来不是 8 的倍数,则会向内存位置添加额外的空间,使其成为 8 的倍数,从而在内存中正确对齐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2012-10-03
    • 2012-06-11
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多