Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Cloning and Serialization ?

 
Mahtab Alam
Ranch Hand
Posts: 391
1
Java MySQL Database PHP
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the difference between Cloning and Serialization.

It seems almost same.


What i know:
Cloning is making an exact copy of the object and changes to one reflect changes in original object.


But Serializing an object is like saving an object and making it alive when we need it.

Please add anything if you like.......
 
Jeff Verdegan
Bartender
Posts: 6109
6
Android IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mahtab Alam wrote:
Cloning is making an exact copy of the object


Yes.

and changes to one reflect changes in original object.


No. Changes to the values of the fields of one will not affect the other. However, in the default, "shallow copy" case, changes to the state of an object pointed to by the field of either object will be seen by the other.


But Serializing an object is like saving an object and making it alive when we need it


That's kind of right. The two main uses for serialization are to persist an object's state across JVM executions, and to transmit an object's state to another JVM over a network.
 
Campbell Ritchie
Sheriff
Posts: 48404
56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The two are very different. Serialisation means converting an object to a series of bytes. You can mimic cloning by serialising and deserialising an object, however.
 
Sumit Suresh Rao
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
they are as different as Chalk and Cheese.

Cloning is used to make copy of an Object. Though changes in one will reflect changes in other, depending whether it is shallow copy or a deep copy.

Serialization on the other hand is used save the state of an Object. You will serialize an Object to get a stream and save it somewhere and de-serialize it to get your original Object(if that object doesn't contain any transient variable). Serialization is used majorly when you want to send an Object over the network or when you want to play with a pool of Object.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic