सीरियलाइज़ेशन एक ऑब्जेक्ट की स्थिति को बाइट स्ट्रीम में बदलने की प्रक्रिया है, एक ऑब्जेक्ट को सीरियलाइज़ेबल कहा जाता है यदि इसकी क्लास या पैरेंट क्लासेस या तो Serializable या Externalizable इंटरफेस को लागू करती हैं और डीसीरियलाइज़ेशन सीरियलाइज़्ड ऑब्जेक्ट को वापस ऑब्जेक्ट की कॉपी में बदलने की प्रक्रिया है।
सीरियलाइज़ेशन के दौरान, यदि हम किसी विशेष वेरिएबल की स्थिति को बाइट स्ट्रीम में लिखना नहीं चाहते हैं तो transient कीवर्ड का उपयोग कर सकते हैं। जब JVM transient कीवर्ड तक पहुंचता है, तो यह वेरिएबल की मूल स्थिति को अनदेखा करता है और उस डेटा टाइप का डिफ़ॉल्ट मान संग्रहीत करता है यानी int के लिए 0, byte के लिए 0, float के लिए 0.0 आदि। एक ऑब्जेक्ट का सीरियलाइज़ेशन FileOutputStream और ObjectOutputStream क्लास के माध्यम से किया जा सकता है।
उदाहरण
import java.io.*; public class SerializationTest implements Serializable { int a = 1, b = 2; transient int c = 3; public static void main(String[] args) throws Exception { SerializationTest obj = new SerializationTest(); // सीरियलाइज़ेशन FileOutputStream fos = new FileOutputStream("serialization.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(obj); // डी-सीरियलाइज़ेशन FileInputStream fis = new FileInputStream("serialization.txt"); ObjectInputStream ois = new ObjectInputStream(fis); SerializationTest test = (SerializationTest)ois.readObject(); System.out.println("a = " + test.a); System.out.println("b = " + test.b); System.out.println("c = " + test.c); } }आउटपुट
a = 1 b = 2 c = 0