java - 为什么使用 Arrays.copyof() 会增加静态数组的大小?

标签 java arrays

我认为数组是静态的,即它们的元素大小不能增加或减少。为什么当我声明一个 x 元素数组时,我可以像这样将一个 y>x 元素数组复制到我的新数组中:

import java.util.Arrays;

public class CopyOf {

public static void main(String[] args) {
    int[] array ={4,5,4,65,465,4,56,456,6,43,3,5,45};

    //copiedArray has 4 elements
    int[] copiedArray = new int[4];
     copiedArray = Arrays.copyOf(array, array.length);

    // copiedAarray now has 13 elements
    System.out.println(Arrays.toString(copiedArray));

    }

}

最佳答案

这个

int[] copiedArray = new int[4];

创建一个数组引用,并将其分配给一个空间为 4 int(s) 的新数组。那么,这个

copiedArray = Arrays.copyOf(array, array.length);

创建一个新数组并将其分配给 copiedArray。上一行创建的 4 个 int(s) 不再可达,现在可以进行垃圾回收了。

关于java - 为什么使用 Arrays.copyof() 会增加静态数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27151465/

相关文章:

java - 使用 axis2 和 java2wdsl 在所有节点中重复命名空间

java - 在 JDialog 中放弃控制

php - 将数组提取到全局变量中

arrays - JQ 如何向完整树添加节点

python - 从不同的文件调用一个函数,其中文件名和函数名是从列表中读取的

java - 如何让.properties从Jenkins读取参数

java - java中如何处理高效的数据库连接和性能?

java - 以编程方式设置 Jetty session cookie 名称

java - 在数组中创建 JButton 时出错

cgo 使用 c struct 数组并在 go 中赋值