当我在Android SDK中阅读SparseArray的源代码时,遇到了一个名为ArrayUtils.newUnpaddedObjectArray(capacity)的方法。我不明白未填充数组的含义吗?
答案 0 :(得分:0)
您可以在类ArrayUtils使用的VMRuntime中找到更多信息。
VMRuntime.newUnpaddedArray(...)的JavaDoc说:
返回至少为minLength,但可能更大的数组。增加的大小来自避免在数组之后进行任何填充。填充量取决于componentType和内存分配器的实现。
Java数据类型在内存中使用不同的大小。如果仅分配所需的容量,则在下一次内存分配之前,末端的一些空间将不使用。此空间称为填充。因此,为了不浪费此空间,将数组做大一点。