Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 SerialVersionUID 키워드의 중요성?

<시간/>

SerialVersionUID

  • SerialVersionUID private static final long으로 선언해야 합니다. 자바의 변수. 이 숫자는 클래스의 상태와 클래스 속성을 기반으로 컴파일러에 의해 계산됩니다. JVM이 파일에서 객체의 상태를 읽을 때 객체의 상태를 식별하는 데 도움이 되는 숫자입니다.
  • SerialVersionUID 직렬화 해제 중에 사용할 수 있습니다. 직렬화된 객체의 발신자와 수신자가 직렬화와 호환되는 해당 객체에 대한 클래스를 로드했는지 확인하기 위해 . 역직렬화 개체가 직렬화와 다른 경우 InvalidClassException이 발생할 수 있습니다. .
  • serialVersionUID 지정되지 않은 경우 런타임은 기본 serialVersionUID를 계산합니다. 가치 수업의 다양한 측면을 기반으로 한 수업입니다.

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");
   }
}

출력

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