Java 직렬화는 다음 유형의 직렬화를 제공합니다. 1. 기본 데이터 유형 직렬화, 2. 클래스가 java.io.Serialized 인터페이스를 구현해야 하는 객체 직렬화, 3. Java를 구현하기 위해 객체가 필요한 외부화 및 역직렬화. io. 외부화 가능한 인터페이스. 실제 전투에서는 객체 정보를 직접 저장하고 읽을 수 있습니다.
Java 직렬화 유형
Java 직렬화는 객체의 상태를 영구 저장소에 저장하거나 네트워크를 통해 전송하는 프로세스입니다. Java는 다음과 같은 직렬화 유형을 제공합니다.
1. 기본 데이터 유형 직렬화
기본 데이터 유형(예: int, long, double)을 직접 직렬화할 수 있습니다.
// 基本数据类型序列化 int num = 100; OutputStream out = new FileOutputStream("num.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(num); oos.close();
2. 객체 직렬화
객체를 직렬화하려면 클래스에서 java.io.Serialized
인터페이스를 구현해야 합니다. java.io.Serializable
接口。
// 对象序列化 class Person implements Serializable { private String name; private int age; // ... } Person person = new Person(); OutputStream out = new FileOutputStream("person.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(person); oos.close();
3. 外部化和反序列化
外部化允许自定义序列化和反序列化的过程。对象需要实现 java.io.Externalizable
// 外部化 public void writeExternal(ObjectOutput out) { out.writeObject(name); out.writeInt(age); } // 反序列化 public void readExternal(ObjectInput in) { this.name = (String) in.readObject(); this.age = in.readInt(); }
3. 외부화 및 역직렬화
외부화를 사용하면 직렬화 및 역직렬화 프로세스를 사용자 정의할 수 있습니다. 객체는java.io.Externalized
인터페이스를 구현해야 합니다. // 存储用户信息 UserInfo user = new UserInfo(); OutputStream out = new FileOutputStream("user.ser"); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(user); oos.close(); // 读取用户信息 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.ser")); UserInfo user2 = (UserInfo) ois.readObject(); ois.close();
위 내용은 Java 직렬화 및 역직렬화의 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!