Ява передается по значению Или передается по ссылке Или оба? [Дубликат]
На этот вопрос уже есть ответ:
Является ли Java «передачей по ссылке» или «передачей по значению»? 78 ответовРассмотрим следующий случай.
List<Integer> listOne = new ArrayList<>();
List<Integer> listTwo = new ArrayList<>();
listOne.add(1);I think this happens due to
listOne.add(2);
listOne.add(3);
Collections.reverse(listOne);
listTwo = listOne; //listTwo has same reference
Collections.reverse(listOne);
System.out.println(listOne); //out put [1, 2, 3]
System.out.println(listTwo); // same out put
Java is pass by value, where values (for non primitive types) happen to be references.
Я думаю, это обеспечит выживание Java для такого сценария. Если честно, почемуjava
попытайся избежатьpass by reference
и постарайся отличаться отsome of other languages
? в то время как Java по-прежнему страдает от ссылочного поведения?
Редактировать: дополнительно, пожалуйста, объясните, что происходит в приведенном выше коде