为什么使用Arrays.copyof()增加了静态数组的大小? [英] Why using Arrays.copyof() increased the size of a static array?
本文介绍了为什么使用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屋!
查看全文