Question: I have questions about shallow copy and deep copy. Consider the following code:
Vector v = new Vector(); Vector v2 = v;
Is this the only way to make a shallow copy?
Answer: Actually, you have not done a shallow copy at all. Rather, by creating
v2 , you have created a second reference to the same object. A shallow copy will make a complete copy of the object and any primitive attribute. It will not, however, make copies of any high-level object attributes. Instead, it points those attributes at the reference in the original object.
For a good introduction to how Java treats references, read: "Does Java pass by reference or pass by value? " (JavaWorld, May 26, 2000).