B b1 = new B();
B b2 = b1;
Выше кода создает только один объект типа B
. b1 и b2 являются ссылками, которые указывают на тот же объект. Это псевдонимы для одного и того же объекта.
B b1 = new B(); //1
B b2 = new B(); //2
b2 = b1; //3
В этом коде два объекта типа B
создаются в строках 1 и 2. Однако после строки 3 b2 ссылается на тот же объект , что и b1 , и поэтому оба снова являются псевдонимами. Объект, на который изначально ссылается b2, теперь получает право на сборку мусора.
Итак, в обоих случаях b1 и b2 указывают на один и тот же объект, и любые изменения, сделанные в этом объекте, будут видны через обе ссылки. Имейте в виду, что b1 и b2 не являются самим объектом, а являются только ссылками на этот объект. b1 = b2 не копирует какие-либо значения из одного объекта в другой, он просто повторно ссылается на ссылку.