জাভাতে, সিরিয়ালাইজেশন হল একটি ধারণা যা ব্যবহার করে আমরা একটি বস্তুর অবস্থাকে একটি বাইট স্ট্রীমে লিখতে পারি যাতে আমরা এটিকে নেটওয়ার্কে স্থানান্তর করতে পারি (জেপিএ এবং আরএমআই-এর মতো প্রযুক্তি ব্যবহার করে)।
ক্ষণস্থায়ী ভেরিয়েবল − ক্ষণস্থায়ী ভেরিয়েবলের মানগুলি কখনই বিবেচনা করা হয় না (এগুলিকে সিরিয়ালাইজেশন প্রক্রিয়া থেকে বাদ দেওয়া হয়)। অর্থাৎ যখন আমরা একটি পরিবর্তনশীল ক্ষণস্থায়ী ঘোষণা করি, ডি-সিরিয়ালাইজেশনের পরে এর মান সর্বদা নাল, মিথ্যা, বা, শূন্য (ডিফল্ট মান) হবে।
অতএব, একটি ক্লাসের একটি অবজেক্টকে সিরিয়াল করার সময়, আপনি যদি JVM একটি নির্দিষ্ট ইনস্ট্যান্স ভেরিয়েবলকে অবহেলা করতে চান তবে আপনি এটিকে ক্ষণস্থায়ী ঘোষণা করতে পারেন৷
public transient int limit = 55; // will not persist public int b; // will persist
উদাহরণ
নিম্নলিখিত জাভা প্রোগ্রামে, ক্লাস স্টুডেন্টের দুটি ইনস্ট্যান্স ভেরিয়েবলের নাম এবং বয়স রয়েছে যেখানে বয়সকে ক্ষণস্থায়ী ঘোষণা করা হয়েছে। SerializeExample নামে আরেকটি ক্লাসে আমরা স্টুডেন্ট অবজেক্টকে সিরিয়ালাইজ এবং নির্বীজন করার চেষ্টা করছি এবং এর ইনস্ট্যান্স ভেরিয়েবলগুলি প্রদর্শন করছি। যেহেতু বয়সকে অদৃশ্য (ক্ষণস্থায়ী) করা হয়েছে শুধুমাত্র নামের মানটি প্রদর্শিত হয়।
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Student implements Serializable { private String name; private transient int age; public Student(String name, int age) { this.name = name; this.age = age; } public void display() { System.out.println("Name: "+this.name); System.out.println("Age: "+this.age); } } public class SerializeExample { public static void main(String args[]) throws Exception { //Creating a Student object Student std = new Student("Sarmista", 27); //Serializing the object FileOutputStream fos = new FileOutputStream("e:\\student.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(std); oos.close(); fos.close(); System.out.println("Values before de-serialization: "); std.display(); System.out.println("Object serialized......."); //De-serializing the object FileInputStream fis = new FileInputStream("e:\\student.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Student deSerializedStd = (Student) ois.readObject(); System.out.println("Object de-serialized......."); ois.close(); fis.close(); System.out.println("Values after de-serialization"); deSerializedStd.display(); } }
আউটপুট
Values before de-serialization: Name: Sarmista Age: 27 Object serialized....... Object de-serialized....... Values after de-serialization Name: Sarmista Age: 0