Computer >> Máy Tính >  >> Lập trình >> Java

Tại sao biến tạm thời không được tuần tự hóa trong Java?

Serialization là một quy trình duy trì các đối tượng java ở dạng chuỗi byte bao gồm dữ liệu của đối tượng cũng như thông tin về loại đối tượng và các loại dữ liệu được lưu trữ trong đối tượng. Serialization là bản dịch của giá trị / trạng thái của đối tượng Java thành byte để gửi nó qua mạng hoặc để lưu nó. Mặt khác, Hủy đăng ký là chuyển đổi của mã byte tới các đối tượng java tương ứng.

Thoáng qua biến là một biến có giá trị không được tuần tự hóa trong quá trình tuần tự hóa tiến trình. Chúng tôi sẽ nhận được một giá trị mặc định cho biến này khi chúng tôi giải mã hóa nó.

Cú pháp

private transient <member-variable>;

Ví dụ

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.app*end("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();
   }
}
// main class
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);
   }
}

Đầu ra

Name:
Adithya
Age:
0
Occupation:
Java Developer