ArrayUtils.newUnpaddedObjectArray()方法有什么作用?

时间:2018-12-05 02:03:44

标签: java android

当我在Android SDK中阅读SparseArray的源代码时,遇到了一个名为ArrayUtils.newUnpaddedObjectArray(capacity)的方法。我不明白未填充数组的含义吗?

1 个答案:

答案 0 :(得分:0)

您可以在类ArrayUtils使用的VMRuntime中找到更多信息。

VMRuntime.newUnpaddedArray(...)的JavaDoc说:

  

返回至少为minLength,但可能更大的数组。增加的大小来自避免在数组之后进行任何填充。填充量取决于componentType和内存分配器的实现。

Java数据类型在内存中使用不同的大小。如果仅分配所需的容量,则在下一次内存分配之前,末端的一些空间将不使用。此空间称为填充。因此,为了不浪费此空间,将数组做大一点。