Kotlin 如何存储列表的数据?

How does Kotlin store the data for a list?

我想知道 Kotlin 如何将数据存储在列表中。我已经阅读了函数 listOf 和接口 List 的源代码,但我一直无法找到数据存储的位置。例如 val list = listOf(1,2,3)。这三个数字用什么存储方式存储?

感谢您的阅读。

如果您遵循调用链,listOf(vararg elements: T) 在 JVM 上调用 Arrays.asList(elements),它看起来像:

    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

这不是常用的Java ArrayList,而是同名的私有class。但就像 public ArrayList 一样,项目存储在支持对象数组中。在这种情况下,vararg 对象数组直接用作后备数组,因此没有多余的复制或分配。源码可以查看here.