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

Tầm quan trọng của từ khóa SerialVersionUID trong Java?

SerialVersionUID

  • SerialVersionUID phải được khai báo là dài cuối cùng tĩnh riêng tư biến trong Java. Con số này được trình biên dịch tính toán dựa trên trạng thái của lớp và các thuộc tính của lớp. Đây là con số sẽ giúp JVM xác định trạng thái của một đối tượng khi nó đọc trạng thái của đối tượng từ một tệp.
  • SerialVersionUID có thể được sử dụng trong quá trình deserialization để xác minh rằng người gửi và người nhận của một đối tượng được tuần tự hóa đã tải các lớp cho đối tượng đó tương thích với w.r.t tuần tự hóa . Nếu đối tượng deserialization khác với tuần tự hóa, thì nó có thể ném ra InvalidClassException .
  • Nếu serialVersionUID không được chỉ định thì thời gian chạy sẽ tính serialVersionUID mặc định giá trị cho lớp đó dựa trên các khía cạnh khác nhau của lớp.

Ví dụ

import java.io.*;
class Employee implements Serializable {
   private static final long serialVersionUID = 5462223600l;
   int empId;
   String name;
   String location;
   Employee(int empId, String name, String location) {
      this.empId = empId;
      this.name = name;
      this.location = location;
   }
   void empData() {
      System.out.println("Employee Id is: "+ empId);
      System.out.println("Employee Name is: "+ name);
      System.out.println("Employee Location is: "+ location);
   }
}
public class EmployeeTest {
   public static void main(String[] args)throws Exception{
      Employee emp = new Employee(115, "Raja", "Hyderabad");
      emp.empData();
      FileOutputStream fos = new FileOutputStream("E:\\Employee.txt");
      ObjectOutputStream oos = new ObjectOutputStream(fos);
      oos.writeObject(emp);
      System.out.println("Object Serialized");
   }
}

Đầu ra

Employee Id is: 115
Employee Name is: Raja
Employee Location is: Hyderabad
Object Serialized