Copiar arrays de Java es sencillo, ¿pero qué método es más seguro para nuestra aplicación?
En este enlace demuestran la diferencia entre hacer un copia literal o un clonado de un array. Y lo demuestran consultando después el Hash Code, viendo en cada caso si mantiene el valor del array original o si obtiene un código nuevo. Aquí el enlace.
Forma 1:
Copiar un array de esta forma "String [] array = arrayOrigen;" hace que ambos arrays tengan el mismo Hash Code. Eso significa que el array nuevo es una variable por referencia que apunta al mismo contenido que el arrayOrigen.
Forma 2:
Copiar un array de esta otra forma "String [] array = (String []) arrayOrigen.clone();" hace que ambos arrays tengan diferente Hash Code. Eso significa que el array nuevo es una copia nueva su contenido se almacena en una nueva zona de memoria. Por eso su Hash Code es diferente al del arrayOrigen.
¿Cuál es más seguro de utilizar dentro de un método?
El segundo. De esa forma evitamos cambiar los datos por error del arrayOrigen.
claro y conciso, el sueño de la razón