Soy nuevo en Java y tengo algunas preguntas en mente con respecto a la asignación de objetos. Por ejemplo,Asignación de objetos Java
Test t1 = new Test();
Test t2 = t1;
t1.i=1;
Suponiendo variable de i
se define dentro de la clase de prueba, estoy derecho de asumir tanto t1 y t2 punto al mismo objeto cuando la modificación afecta tanto t1.i=1
t1
y t2
? En realidad lo probé y parece que tenía razón. Sin embargo, cuando intento lo mismo en String
, la modificación ocurre solo en un lado donde el otro lado no se ve afectado. Cuál es la razón detrás de esto?
Editar: El caso probé con String.
String s1 = "0";
String s2 = s1;
s1 = "1";
System.out.println(s1);
System.out.println(s2);
que se dan cuenta de mi error al probar los casos en cadena ya que es inmutable. La situación en la que pensé s1="1"
modificar la cadena es, de hecho, devolver la referencia de "1" a la s1. Sin embargo, mi pregunta permanece. ¿Hace Test t2 = t1;
que tanto t2 como t1 apuntan al mismo objeto o cada uno tiene sus propios objetos? ¿Esta situación se aplica a todos los objetos en Java?
¿Qué quiere decir con 'probar lo mismo en String'? No hay métodos en el objeto String para modificar la cadena en sí. Por favor, lea la documentación cuidadosamente. – DRCB
Si publica el código de la prueba que está haciendo en String, podemos ser más específicos sobre lo que está haciendo incorrectamente –