Answer Posted / vineesh ktda
1. Difference between shallow copy and deep copy
. 2. How to implement shallow copy ?
3. How to mplement deep copy? .
A shallow copy creates an identical copy (new instance) of an object .If an object contains reference (pointer) type fields pointing to other objects then it copies only the references and not the objects to which they point. The result is two objects that point to the same contained object. That means the original object and cloned object maintains a seperate copy for value (primtive) type fields , references and shares common place for value of reference type fields. So in shallow copy , the changes in the value of reference type fields of cloned object also reflects in the original objects and vice versa. Shallow copy can be implemented by using the clone method of an Object class
A deep copy creates an identical copy of an object including the references and the objects they point to , as well as any references or objects contained within that and so on. In deep copy , the changes in the value of reference type fields of cloned object does not reflect in the original objects and vice versa.. There is no direct method for deep copy . But there are many ways to implement the deep copy.
1. You can use constructor of an object to create a second object with property values taken from the first object.
2. You can use clone method of an Object class to create a shallow copy of an object , and make it deep copy by assigning new objects whose values are the same as the original object to reference type fields. The DeepCopy method in the example illustrates this approach.
3. Use Serialization technique ie. Serialize the object , and then deserialize to a different object variable which implements deep copy.
| Is This Answer Correct ? | 0 Yes | 1 No |
Post New Answer View All Answers
What is the inheritance?
How do you remove duplicates from an array in java?
What is public static void main?
If an object is garbage collected, can it become reachable again?
What are the advantages of java over cpp?
what happens when a thread cannot acquire a lock on an object? : Java thread
What are exceptions
What are 4 pillers of object orinted programming?
How do you use compareto in java?
Explain JMS in detail.
What is the use of System class?
Can sleep() method causes another thread to sleep?
Is it possible to cast an int value into a byte variable? What would happen if the value of int is larger than byte?
How will you serialize a singleton class without violating singleton pattern?
Can a main method be overloaded?