>  기사  >  Java  >  Java 직렬화 및 역직렬화의 유형은 무엇입니까?

Java 직렬화 및 역직렬화의 유형은 무엇입니까?

WBOY
WBOY원래의
2024-04-15 12:39:021014검색

Java 직렬화는 다음 유형의 직렬화를 제공합니다. 1. 기본 데이터 유형 직렬화, 2. 클래스가 java.io.Serialized 인터페이스를 구현해야 하는 객체 직렬화, 3. Java를 구현하기 위해 객체가 필요한 외부화 및 역직렬화. io. 외부화 가능한 인터페이스. 실제 전투에서는 객체 정보를 직접 저장하고 읽을 수 있습니다.

Java 직렬화 및 역직렬화의 유형은 무엇입니까?

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();
실용 사례

🎜🎜🎜사례: 사용자 정보 저장 및 읽기🎜🎜rrreee

위 내용은 Java 직렬화 및 역직렬화의 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.