gpt4 book ai didi

java - Java省略号是否会导致数组在幕后分配内存?

转载 作者:行者123 更新时间:2023-12-01 16:36:02 25 4
gpt4 key购买 nike

我正在编写一个 Android 游戏,我确保没有发生内存分配。一切都集中起来。

在我的一个辅助函数中,我想使用省略号。Java省略号是否会导致数组在幕后分配内存?

最佳答案

这取决于调用者。如果调用者提供单独的值,编译器会更改该调用代码以在幕后创建一个数组。如果他们直接提供一个数组,则不需要新的数组。

例如:

public void foo(String... names) {
}

public void bar1() {
// Does allocate array on each call
foo("x", "y", "z");
}

private static final String[] EXISTING_ARRAY = new String[10];

public void bar2() {
// No allocation
foo(EXISTING_ARRAY);
}

因此,如果您希望每个数组创建在调用代码中都非常明显,那么使用可变参数将是一个坏主意。

关于java - Java省略号是否会导致数组在幕后分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9001607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com