SiteMap  | About    

Serialization and Deserialization in Java

Serialization in java is a mechanism of writing the state of an object into a byte stream and deserialization is the process of converting a stream of bytes back into a copy of the original object. A Java object is serializable if its class or any of its superclasses implements either the interface or its subinterface,

Marker Interface

The Serializable interface is a "marker" interface. This means that it has no methods or fields, but simply "marks" a class as being able to be serialized. When the Java Virtual Machine (JVM) encounters a class that is "marked" as Serializable during a serialization process, the Virtual Machine will assume that it is safe to write to the stream. These all happens somewhat automatically for a programmer. Following are the well-known Marker Interfaces.

  1. rmi.Remote
  2. io.Serializable
  3. lang.Cloneable


Serializing an Object

Deserialization of Object

Serialization and Variables

Instance Variables:

These variables are serialized, so during deserialization we will get back the serialized state.

Static Variables:

These variables are not serialized, So during deserialization static variable value will loaded from the class. But, any static variable that is provided a value during class initialization is serialized . However in usual cases, where you would provide the value to a static variable at the main class at run-time would not be serialized.

Transient Variables:

Transient variables are not serialized, so during deserialization those variables will be initialized with corresponding default values.

Super class variables:

If super class also implemented Serializable interface then those variables will be serialized, otherwise it won't serialize the super class variables. While deserializing , Java Virtual Machine (JVM) will run default constructor in super class and populates the default values. Same thing will happen for all superclasses. (C) 2017    Founded by raps mk
All Rights Reserved. All other trademarks are property of their respective owners.