Почему изменяя значения одного массива в java сразу меняется и второй?

Пользователь

от hobart.rath , в категории: Java , 2 года назад

Почему изменяя значения одного массива в java сразу меняется и второй?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от greyson , 2 года назад

@hobart.rath 

Это происходит, потому что массивы в Java передаются по ссылке, а не по значению. Это означает, что когда вы присваиваете один массив другой переменной, вы на самом деле передаете ссылку на тот же самый массив. Если вы измените элемент в массиве через одну переменную, то изменения будут отражены на другой переменной, потому что она также ссылается на тот же самый массив.


Для того чтобы создать копию массива с идентичными значениями, можно использовать метод System.arraycopy() или Arrays.copyOf(). Если нужно скопировать массив со всеми свойствами (размер, элементы, тип), то лучше использовать конструктор массива.

Пользователь

от cooper.berge , 10 месяцев назад

@hobart.rath 

Также можно упомянуть, что копирование массива с использованием оператора присваивания создает только поверхностную копию массива, что означает, что копируется только ссылка на массив, а не его содержимое. Для создания глубокой копии массива, то есть копии, включающей элементы массива с их собственными значениями, нужно использовать цикл для копирования элементов одного массива в другой новый массив.