File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes about clone Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "about clone" Watch "about clone" New topic

about clone

robert chen

Joined: Oct 19, 2003
Posts: 5
Hi everyone.
My problem is
1.What is the different from deep and shallow copy.
2.What is the example.
Michael Morris
Ranch Hand

Joined: Jan 30, 2002
Posts: 3451
A shallow copy just copies all mutable object references as is. A deep copy clones every object so that the references refer to different objects.
Shallow copy:
Shallow copy example

Deep copy example

Notice that in the deep copy I created a new double[] and copied the contents of it into my clone and I created a new Map with HashMap's copy constructor. Note that on the primitive int and the String member that there is no difference in the clone methods. The reason for this is that primitive instance variables of objects of the same class always have unique storage for each object. As for the String member, Strings are immutable so there is no danger that the cloned object could change the value of the String in the parent.

Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
robert chen

Joined: Oct 19, 2003
Posts: 5
Thanks for your help.
I agree. Here's the link:
subject: about clone
It's not a secret anymore!