Мне нужна небольшая помощь в java. Я просто новичок в java. Но я полагал, что мой фонд был довольно солидным.Что происходит, когда 2 объекта равны друг другу
Я создал простое java-приложение, когда у меня возникла небольшая проблема с двумя объектами ArrayList. Позволяет называть их list1
и list2
. Если бы я должен был сделать list1 равным list2 list1 = list2;
и добавить элемент в список2 list2.add(obj)
, этот элемент также будет добавлен в список1.
Я сделал свое исследование и выяснил, что должен сделать это вместо list1 = new ArrayList(list2);
Я не знал, что объекты java работают как указатели. Я думал, что только значения передаются, когда 2 объекта равны. Я даже создал простое тестовое приложение, которое может устанавливать и получать несколько объектов. Опять же, я сравнил оба объекта. Изменение элемента 1 объекта, похоже, влияет и на другой объект. Я не знаю, как я должен искать это в Google. Вот почему я кормлю вас всей историей. Я получаю только документы, связанные с программированием c. Я чувствую, что мой фонд просто разбит на куски. Я просто знаю, как работает =
. Пробовал делать
int num1 = 666;
int num2 = num1;
num1 = 42;
Это не влияет на num2. Однако
Object obj1 = new Object();
Object obj2 = obj1;
obj1.changeSomeElement();
Это влияет на obj2.
Теперь я смущен тем, как работает =
в java. Кто-то, пожалуйста, поделитесь некоторыми полезными документами, чтобы я мог их прочитать. Благодаря!
NOP. Это аргументы. Im запутался о том, как значение объекта в java передается другому объекту. – user859385
простые типы не являются ссылками, только значение копируется '=' – rzysia
. Посмотрите http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – starf