Я думал, что массивы статичны, т.е. Они не могут быть увеличены или уменьшены в размере элемента. Почему, когда я объявляю массив из 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
(ы), созданные на предыдущей строке, уже недоступны, и теперь они могут быть использованы для сбора мусора.
copiedArray
изменил ссылку на массив [4] на массив [13]
Теперь переменный array
и copiedArray
указывают на один и тот же объект.