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