¿Java pasa por valor o pasa por referencia o ambos? [duplicar
Esta pregunta ya tiene una respuesta aquí:
Es Java "paso por referencia" o "paso por valor"? 78 respuestasonsidere el siguiente cas
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.
Creo que esto proporciona supervivencia para Java para este tipo de escenario. Para ser sincero, ¿por quéjava
tratar de evitarpass by reference
e intenta ser diferente desome of other languages
? mientras que Java todavía sufre de conductas de referencia?
Edit: adicionalmente, por favor, alguien explique lo que sucede en el código anterior