we have a following code :
Vector a ; // containing some struct info
Vector b;
b = a ;
if we modify b
does it affect on the containing of a
?
we have a following code :
Vector a ; // containing some struct info
Vector b;
b = a ;
if we modify b
does it affect on the containing of a
?
Yes. Both b
and a
will refer to the same instance of Vector
on the heap. This happens with any object, including arrays.
Let's say vector a
lies at a hypothetical place called 12345 on the heap. a
's value(since A is a reference) is 12345. When b=a
is done, b
equals 12345 as well. Dereferencing b
will land you on the same place on the heap hence the same object.
Yes! That's a flat copy. To make a deep copy, use Collections:
Vector b = new Vector(a.size());
b.setSize(a.size());
Collections.copy(b,a);
Hope that helps.
edit:
hexafraction is right, the better answer is (using the copy constructor):
Vector b = new Vector(a);