Perdónenme si es un duplicado, parece que no encuentro nada que explique lo que estoy viendo bien.java copia de referencia nula
El siguiente programa:
Object a = new Object();
Object b = a;
System.out.println("a: " + a);
System.out.println("b: " + b);
a = null;
System.out.println("a: " + a);
System.out.println("b: " + b);
Rendimientos esto:
a: [email protected]
b: [email protected]
a: null
b: [email protected]
Pero QUÉ?!? Estoy tan confundido por esto. ¿No debería "b" estar haciendo referencia a "a"? Por lo tanto, si "a" ya no hace referencia a nada más (p. Ej .: nulo), ¿no debería "b"? Obviamente me falta algo fundamental aquí.
Gracias de antemano.
editar # 1
Creo que lo que me confundió fue estoy imprimiendo a cabo la dirección. Por alguna razón, en mi opinión, estaba imprimiendo algún valor mágico que indica los punteros \ referencias - cuando en realidad la configuración b = a
no los está haciendo iguales, simplemente está creando un nuevo puntero al mismo lugar en el montón. Espero que esto ayude a alguien más.
Gracias. Con mucho, la explicación más clara: sabía que me estaba perdiendo algo bastante obvio; o tal vez necesitaba un refresco, DOH! – javamonkey79
Me alegro de que salga claro :) – MByD