Serialization / Marshalling / Deflating in JAVA

Writing Java Objects or keeping the state of Objects into DataBase or Files (In Binary Format) is known as Serialization or Marshalling or deflating.
Reading Java Objects back in Binary Format from file or Database is known as DeSerialization or UnMarshalling or inflating.

Serialization ,Marshalling ,deflating, DeSerialization ,UnMarshalling ,inflating
Serialization /Marshalling /deflating – DeSerialization/ UnMarshalling /inflating

Transient : If any variable is defined by using keyword “transient”, then object will not serialize that variable. During deserialization default value of that datatype will be set.
Static : as static variables are class level variables, so it is not serialzed as the object state.

Example:

package com.G2.Serialization;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Home implements Serializable
{
	 transient int flatNo;
	 String OwnerName;
}

class Door extends Home
{
	private boolean isDoubleLock;
	private String DoorMaterial;
	public void setValue(boolean isDLock,String dMaterial, int fNo,String Owner)
	{
		isDoubleLock = isDLock;
		DoorMaterial = dMaterial;
		flatNo = fNo;
		OwnerName = Owner;
	}
	public void Display()
	{
		System.out.println("Double Lock - "+isDoubleLock);
		System.out.println("Material - "+DoorMaterial);
		System.out.println("flat No - "+flatNo);
		System.out.println("Owner Name - "+OwnerName);
	}
}

public class SerializationDemo {
	public static void main(String[] args) throws FileNotFoundException, IOException,
ClassNotFoundException {
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Demo.srl"));

		Door d = new Door();
		d.setValue(true, "Wood", 24, "Minal Zaa");
		System.out.println(" *** Serializing Object *** ");
		out.writeObject(d);

		out.close();

		ObjectInputStream in = new ObjectInputStream(new FileInputStream("Demo.srl"));
		System.out.println(" *** DeSerializing Object *** ");
		Door d1 = (Door) in.readObject();
		d1.Display();

		in.close();

	}
}

Output:

*** Serializing Object ***

*** DeSerializing Object ***
Double Lock – true
Material – Wood
flat No – 0
Owner Name – Minal Zaa

Note from example:
Parent class implements interface “Serializable“ and child class extends that, so child class automatically gets serialized.
Variable “flatNo” is transient and therefore it is not serialized.

further read – Externalization API of Java.

Posted

in

by

Tags:


Related Posts

Comments

3 responses to “Serialization / Marshalling / Deflating in JAVA”

  1. […] Zaa on April 20th, 2011 We have seen an example of Serialization and how it works in our previous article. However there is one more interface provided by the Java API which is […]

  2. […] serialVersionUID in Java Posted by Jitendra Zaa on April 20th, 2011 The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which […]

  3. Mahender Avatar
    Mahender

    nice…dude

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from Jitendra Zaa

Subscribe now to keep reading and get access to the full archive.

Continue Reading