- Serializable means transferable
- The concept of transferring object of a class from one location to another location is known as Serialization.
- All the java classes can be devided into two.
- The classes whose objects can be transferable . Objects of all classes that are implementing serializable interface can be transferable
- The classes whose objects can't be transferable . Objects of all classes which are not implementing serializable interface cant be transferable .
- To transfer the object need to convert to byte stream : serializing
- To receive Object need to convert from byte stream to Object : deserializing
- Classes ObjectInputStream and ObjectOutputStream are high-level streams that contain the methods for serializing and deserializing an object.
public class Student implements java.io.Serializable { public String name; public int number ; }
import java.io.*;
public class SerializeDemo
{
public static void main(String [] args)
{
Employee e = new Employee();
e.name = "harsha";
e.number = 101;
try
{
FileOutputStream fileOut =
new FileOutputStream("/tmp/student.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in /tmp/employee.ser");
}catch(IOException i)
{
i.printStackTrace();
}
}
}
- Deserialization
import java.io.*; public class DeserializeDemo { public static void main(String [] args) { Student e = null; try { FileInputStream fileIn = new FileInputStream("/tmp/employee.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); e = (Student ) in.readObject(); in.close(); fileIn.close(); }catch(IOException i) { i.printStackTrace(); return; }catch(ClassNotFoundException c) { System.out.println("student class not found"); c.printStackTrace(); return; } System.out.println("Deserialized student..."); System.out.println("Name: " + e.name); System.out.println("Number: " + e.number);
By default all the variables in the object is converted to persistent
state. In some cases, you may want to avoid persisting some variables
because you don’t have the necessity to transfer across the network. So,
you can declare those variables as transient. - See more at:
http://www.javabeat.net/what-is-transient-keyword-in-java/#sthash.TMBQ2f9K.dpuf
} }
Transient Keyword:
- The keyword transient in Java used to indicate that the variable should not be serialized
- By default all the variables in the object is converted to persistent state. In some cases, you may want to avoid persisting some variables because you don’t have the necessity to transfer across the network. So, you can declare those variables as transient.
- If the variable is declared as transient, then it will not be persisted. It is the main purpose of the transient keyword.
No comments