为什么 Android SDK 中的某些方法接受数组作为参数而不是返回数组?

Why are some methods in the Android SDK accept an array as a parameter instead of returning an array?

所以我正在开发 android 应用程序。我遇到了 Color class。我看到它的方法之一是 colorToHSV。仅从名称来看,我认为它会 return 一个浮点数组 (HSV)。但是,它 return 无效!它接受一个数组作为参数!我假设它会修改传入的数组。但是为什么它必须这样做呢?只是 return 一个数组!我在 Parcel.

中的 readBooleanArray 中也看到了这种模式

为什么要这样声明方法?这是某种模式吗?

But why does it have to do this?

通常,这种编码模式旨在鼓励对象的回收,避免每次都分配新的对象。

这在 Android 中尤为重要,与之前 Android 5.0、the garbage collector was non-compacting 一样(甚至 ART 的 Android 5.0+ 垃圾收集器仅在应用程序处于的背景)。创建许多小对象,即使它们被垃圾收集,也意味着您的堆变得碎片化,从而抑制您将来进行分配的能力。