Ява передается по значению Или передается по ссылке Или оба? [Дубликат]

На этот вопрос уже есть ответ:

Является ли 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 по-прежнему страдает от ссылочного поведения?

Редактировать: дополнительно, пожалуйста, объясните, что происходит в приведенном выше коде

Ответы на вопрос(4)

Ваш ответ на вопрос