Net-informations.com
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 java.io.Serializable interface or its subinterface, java.io.Externalizable.

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

Example

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.









net-informations.com (C) 2017    Founded by raps mk
All Rights Reserved. All other trademarks are property of their respective owners.