为什么使用Arrays.copyof()增加了静态数组的大小? [英] Why using Arrays.copyof() increased the size of a static array?

查看:245
本文介绍了为什么使用Arrays.copyof()增加了静态数组的大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为数组是静态的,即它们不能被增加或元件尺寸减小。为什么当我x声明元素的数组,我可以Y> x的元素的数组复制到我像这样新的数组:

 进口java.util.Arrays中;公共类CopyOf {公共静态无效的主要(字串[] args){
    INT []数组= {} 4,5,4,65,465,4,56,456,6,43,3,5,45;    // copiedArray有4个元素
    INT [] copiedArray =新INT [4];
     copiedArray = Arrays.copyOf(数组,array.length);    // copiedAarray现在有13个元素
    的System.out.println(Arrays.toString(copiedArray));    }}


解决方案

  INT [] = copiedArray新INT [4];

创建一个数组引用,并将其分配给空间一个新数组4 INT (S)。然后,该

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

创建新的数组并将其分配给 copiedArray 。在previous线创建的4 INT (S)不再可达,现在有资格进行垃圾回收。

I thought Arrays are static, i.e. they cannot be increased or decreased in element size. How come when I declare an array of x elements, I can copy an array of y>x elements into my new array like so:

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));

    }

}

解决方案

This

int[] copiedArray = new int[4];

Creates an array reference, and assigns it to a new array with space for 4 int(s). Then, this

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

creates a new array and assigns it to copiedArray. The 4 int(s) created on the previous line are no longer reachable, and are now eligible for garbage collection.

这篇关于为什么使用Arrays.copyof()增加了静态数组的大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆