সিরিয়ালাইজেশন হলো জাভা অবজেক্টকে বাইট সিকোয়েন্স আকারে সংরক্ষণ করার প্রক্রিয়া, যাতে অবজেক্টের ডেটা এবং অবজেক্টের টাইপ ও সংরক্ষিত ডেটার টাইপ সম্পর্কে তথ্য থাকে। সিরিয়ালাইজেশন হলো জাভা অবজেক্টের মান/স্টেটকে বাইট-এ রূপান্তর করে নেটওয়ার্কের মাধ্যমে পাঠানো বা সংরক্ষণ করা। অন্যদিকে, ডিসিরিয়ালাইজেশন হলো বাইট কোড-কে সংশ্লিষ্ট জাভা অবজেক্টে রূপান্তর।
ট্রানজিয়েন্ট ভেরিয়েবল হলো এমন একটি ভেরিয়েবল যার মান সিরিয়ালাইজেশন প্রক্রিয়ার সময় সিরিয়ালাইজ হয় না। ডিসিরিয়ালাইজ করার সময় এই ভেরিয়েবলের জন্য ডিফল্ট মান পাওয়া যায়।
সিনট্যাক্স
private transient <member-variable>;
উদাহরণ
import java.io.*;
class EmpInfo implements Serializable {
String name;
private transient int age;
String occupation;
public EmpInfo(String name, int age, String occupation) {
this.name = name;
this.age = age;
this.occupation = occupation;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Name:"+"\n");
sb.append(this.name+"\n");
sb.append("Age:"+"\n");
sb.append(this.age + "\n");
sb.append("Occupation:" + "\n");
sb.append(this.occupation);
return sb.toString();
}
}
// মেইন ক্লাস
public class TransientVarTest {
public static void main(String args[]) throws Exception {
EmpInfo empInfo = new EmpInfo("Adithya", 30, "Java Developer");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("empInfo"));
oos.writeObject(empInfo);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("empInfo"));
EmpInfo empInfo1 = (EmpInfo)ois.readObject();
System.out.println(empInfo1);
}
}
আউটপুট
Name: Adithya Age: 0 Occupation: Java Developer