次のケースを考えてみましょう。
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はまだ参照渡しの動作に苦しんでいますか?
編集:さらに、上記のコードで何が起こるかを説明してください