Простите меня, если это дубликат, я не могу найти ничего, что объясняет, что я вижу хорошо.java null reference copy
Следующая программа:
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);
Урожайность это:
a: [email protected]
b: [email protected]
a: null
b: [email protected]
Но ПОЧЕМУ?!? Я так смущен этим. Не следует ли «b» ссылаться на «а»? Поэтому, если «a» больше не ссылается ни на что другое (например: null), то не должно «b»? Я, очевидно, пропустил нечто принципиальное.
Заранее спасибо.
EDIT # 1
Я думаю, что бросил меня было я распечатывание адреса. По какой-то причине, на мой взгляд, я печатал какое-то волшебное значение, указывающее указатели \ ссылки - когда в действительности установка b = a
не делает их одинаковыми, это просто создает новый указатель на одно и то же место в куче. Надеюсь, это поможет кому-то другому.
Спасибо. Безусловно, самое ясное объяснение - я знал, что мне не хватает чего-то достаточно очевидного; или, может быть, мне нужен был переподготовка, DOH! – javamonkey79
Рад, что это получилось ясно :) – MByD