Serialization is a mechanism of converting the state of an object into a byte stream. Deserialization is the reverse process where the byte stream is used to recreate the actual Java object in memory. This mechanism is used to persist the object. The byte stream created is platform independent. So, the object serialized on one platform can be deserialized on a different platform. To make a Java object serializable we implement the java.io.Serializable interface. public final void writeObject(Object obj) throws IOException The ObjectInputStream class contains readObject() method for deserializing an object. public final Object readObject() throws IOException, ClassNotFoundException Advantages of Serialization Only the objects of those classes can be serialized which are implementing java.io.Serializable interface. Points to remember class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); } SerialVersionUID If a serializable class doesn’t explicitly declare a serialVersionUID, then the serialization runtime will calculate a default one for that class based on various aspects of class, as described in Java Object Serialization Specification. However it is strongly recommended that all serializable classes explicitly declare serialVersionUID value, since its computation is highly sensitive to class details that may vary depending on compiler implementations, any change in class or using different id may affect the serialized data. It is also recommended to use private modifier for UID since it is not useful as inherited member. serialver serialver [-classpath classpath] [-show] [classname…] Example 1:
public final Object readObject() throws IOException, ClassNotFoundException0 public final Object readObject() throws IOException, ClassNotFoundException1 public final Object readObject() throws IOException, ClassNotFoundException2 public final Object readObject() throws IOException, ClassNotFoundException3 public final Object readObject() throws IOException, ClassNotFoundException4 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException6 public final Object readObject() throws IOException, ClassNotFoundException7 public final Object readObject() throws IOException, ClassNotFoundException8 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException6 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }1
public final Object readObject() throws IOException, ClassNotFoundException5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }4 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException6 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }7 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }9 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException4 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks4 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks7 public final Object readObject() throws IOException, ClassNotFoundException5 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
public final Object readObject() throws IOException, ClassNotFoundException0 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20004 public final Object readObject() throws IOException, ClassNotFoundException4 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException6 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20008 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20009 // Java code for serialization and deserialization 0public final Object readObject() throws IOException, ClassNotFoundException5 // Java code for serialization and deserialization 2Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // Java code for serialization and deserialization 4// Java code for serialization and deserialization 5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }7 // Java code for serialization and deserialization 7// Java code for serialization and deserialization 8// Java code for serialization and deserialization 9// of a Java object 0Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // of a Java object 2// of a Java object 3// of a Java object 4
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // of a Java object 7Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // of a Java object 9Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // Java code for serialization and deserialization 2
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException02 public final Object readObject() throws IOException, ClassNotFoundException03 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException4
public final Object readObject() throws IOException, ClassNotFoundException08 // of a Java object 0Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException15 public final Object readObject() throws IOException, ClassNotFoundException16 // of a Java object 4
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException20 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // of a Java object 9Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 // Java code for serialization and deserialization 2
public final Object readObject() throws IOException, ClassNotFoundException26
public final Object readObject() throws IOException, ClassNotFoundException28 // Java code for serialization and deserialization 5 public final Object readObject() throws IOException, ClassNotFoundException30
public final Object readObject() throws IOException, ClassNotFoundException32 // Java code for serialization and deserialization 5 public final Object readObject() throws IOException, ClassNotFoundException34
public final Object readObject() throws IOException, ClassNotFoundException37
public final Object readObject() throws IOException, ClassNotFoundException39
public final Object readObject() throws IOException, ClassNotFoundException42
public final Object readObject() throws IOException, ClassNotFoundException48 // of a Java object 0
public final Object readObject() throws IOException, ClassNotFoundException52 public final Object readObject() throws IOException, ClassNotFoundException53
public final Object readObject() throws IOException, ClassNotFoundException56 public final Object readObject() throws IOException, ClassNotFoundException57 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException02 public final Object readObject() throws IOException, ClassNotFoundException03 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException4
public final Object readObject() throws IOException, ClassNotFoundException08 // of a Java object 0Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException02 public final Object readObject() throws IOException, ClassNotFoundException75 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 public final Object readObject() throws IOException, ClassNotFoundException4
public final Object readObject() throws IOException, ClassNotFoundException80 // of a Java object 0Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
public final Object readObject() throws IOException, ClassNotFoundException5 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9 Output : Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks
Example 2:
public final Object readObject() throws IOException, ClassNotFoundException0 public final Object readObject() throws IOException, ClassNotFoundException94 public final Object readObject() throws IOException, ClassNotFoundException2 public final Object readObject() throws IOException, ClassNotFoundException96 public final Object readObject() throws IOException, ClassNotFoundException97 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20008 public final Object readObject() throws IOException, ClassNotFoundException99 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }00 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }01 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }02 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }03 public final Object readObject() throws IOException, ClassNotFoundException5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }05 public final Object readObject() throws IOException, ClassNotFoundException7 public final Object readObject() throws IOException, ClassNotFoundException8 public final Object readObject() throws IOException, ClassNotFoundException5 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20008 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }11 public final Object readObject() throws IOException, ClassNotFoundException5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }13 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }16
public final Object readObject() throws IOException, ClassNotFoundException5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }4 public final Object readObject() throws IOException, ClassNotFoundException6 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }21 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }23 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }25 public final Object readObject() throws IOException, ClassNotFoundException7 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }27 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException4 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }32 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }35 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks4 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks3 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks7 public final Object readObject() throws IOException, ClassNotFoundException5 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
public final Object readObject() throws IOException, ClassNotFoundException6 public final Object readObject() throws IOException, ClassNotFoundException0 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }49 public final Object readObject() throws IOException, ClassNotFoundException6 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20008 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20009 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }53 public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException4
Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 4class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }59 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }60 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 4class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }63 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }64 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 4public final Object readObject() throws IOException, ClassNotFoundException52 public final Object readObject() throws IOException, ClassNotFoundException53 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 4public final Object readObject() throws IOException, ClassNotFoundException56 public final Object readObject() throws IOException, ClassNotFoundException57 public final Object readObject() throws IOException, ClassNotFoundException5 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks9
public final Object readObject() throws IOException, ClassNotFoundException6 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20008 Object has been serialized Data before Deserialization. name = ab age = 20 a = 2 b = 1000 Object has been deserialized Data after Deserialization. name = ab age = 20 a = 0 b = 20009 // Java code for serialization and deserialization 0public final Object readObject() throws IOException, ClassNotFoundException5 public final Object readObject() throws IOException, ClassNotFoundException4 Object has been serialized Object has been deserialized a = 1 b = geeksforgeeks2 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }83 // Java code for serialization and deserialization 5 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }85 class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }86 // Java code for serialization and deserialization 8class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }88 // Java code for serialization and deserialization 8class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }90 // Java code for serialization and deserialization 8class A implements Serializable{ // B also implements Serializable // interface. B ob=new B(); }92 // of a Java object 0 |