Perdonami se questo è un duplicato, non riesco a trovare nulla che spieghi ciò che sto vedendo bene.java null reference copy
Il seguente programma:
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);
rendimenti questo:
a: [email protected]
b: [email protected]
a: null
b: [email protected]
Ma PERCHE '?!? Sono così confuso da questo. Non dovrebbe "b" fare riferimento a "a"? Pertanto, se "a" non fa più riferimento a qualcos'altro (es: null) allora non dovrebbe "b"? Mi manca ovviamente qualcosa di fondamentale qui.
Grazie in anticipo.
EDIT # 1
Penso che quello che mi ha buttato fuori era sto stampando l'indirizzo. Per qualche ragione, nella mia mente, stavo stampando un po 'di valore magico che indica i puntatori \ riferimenti - quando in realtà l'impostazione b = a
non li sta rendendo uguali, sta semplicemente creando un nuovo puntatore allo stesso punto sull'heap. Spero che questo aiuti qualcun'altro.
Grazie. Di gran lunga la spiegazione più chiara - sapevo che mi mancava qualcosa di abbastanza ovvio; o forse avevo bisogno di un aggiornamento, DOH! – javamonkey79
Sono contento che sia venuto fuori chiaro :) – MByD