Heim  >  Artikel  >  Java  >  Wie läuft die Objektserialisierung in Java ab?

Wie läuft die Objektserialisierung in Java ab?

WBOY
WBOYOriginal
2024-04-12 11:30:02520Durchsuche

In Java wandelt die Objektserialisierung Objekte in Byteströme um und die Deserialisierung stellt Byteströme in Objekte wieder her. Die Serialisierung erfordert die Implementierung der Serializable-Schnittstelle, die Vorbereitung des Objekts und die Verwendung von ObjectOutputStream zum Schreiben von Daten. Bei der Deserialisierung wird ObjectInputStream zum Lesen von Daten und zum Rekonstruieren des Objekts verwendet. Der Code serialisiert beispielsweise ein Personenobjekt mit Namens- und Alterseigenschaften und deserialisiert es aus einer Datei, um die Informationen auszugeben.

Wie läuft die Objektserialisierung in Java ab?

Serialisierungsprozess von Objekten in Java

Einführung

Serialisierung ist ein Prozess, bei dem Objekte in einen Bytestrom umgewandelt und in einer Datei oder im Netzwerk gespeichert werden. Deserialisierung ist der umgekehrte Prozess der Rückkonvertierung eines gespeicherten Bytestroms in das ursprüngliche Objekt. Die Kernschnittstelle für die Objektserialisierung in Java ist Serializable. Serializable

序列化过程

1. 实现 Serializable 接口: 类必须实现 Serializable 接口才能进行序列化。

2. 准备对象: 要序列化的对象必须实现 writeObject 方法,该方法将对象的字段写入输出流。如果对象包含其他可序列化的对象,则 writeObject 方法也需要调用这些对象的 writeObject 方法。

3. 创建 ObjectOutputStream 使用 ObjectOutputStream 将对象写入输出流。

4. 编写对象: 调用 writeObject 方法将对象写入输出流。

反序列化过程

1. 创建 ObjectInputStream 使用 ObjectInputStream 从输入流读取对象。

2. 读取对象: 调用 readObject 方法从输入流读取对象。如果对象包含其他可序列化的对象,则 readObject 方法也会调用这些对象的 readObject

Serialisierungsprozess

1. Implementieren Sie die Schnittstelle Serializable:

Die Klasse muss die Schnittstelle Serializable implementieren, die serialisiert werden soll.

2. Bereiten Sie das Objekt vor:

Das zu serialisierende Objekt muss die Methode writeObject implementieren, die die Felder des Objekts in den Ausgabestream schreibt. Wenn das Objekt andere serialisierbare Objekte enthält, muss die Methode writeObject auch die Methode writeObject dieser Objekte aufrufen. 🎜🎜🎜3. Erstellen Sie ObjectOutputStream: 🎜 Verwenden Sie ObjectOutputStream, um Objekte in den Ausgabestream zu schreiben. 🎜🎜🎜4. Objekt schreiben: 🎜 Rufen Sie die Methode writeObject auf, um das Objekt in den Ausgabestream zu schreiben. 🎜🎜Deserialisierungsprozess🎜🎜🎜1. Erstellen Sie ObjectInputStream: 🎜 Verwenden Sie ObjectInputStream, um Objekte aus dem Eingabestream zu lesen. 🎜🎜🎜2. Lesen Sie das Objekt: 🎜 Rufen Sie die Methode readObject auf, um das Objekt aus dem Eingabestream zu lesen. Wenn das Objekt andere serialisierbare Objekte enthält, ruft die Methode readObject auch die Methode readObject dieser Objekte auf. 🎜🎜🎜3. Rekonstruieren Sie das Objekt: 🎜 Nach dem Lesen aller Daten aus dem Eingabestream wird das Objekt mithilfe des Reflexionsmechanismus rekonstruiert. 🎜🎜Praktischer Fall🎜🎜Das folgende Codebeispiel zeigt, wie Objekte in Java serialisiert und deserialisiert werden: 🎜
import java.io.*;

public class Person implements Serializable {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public void writeObject(ObjectOutputStream out) throws IOException {
        out.writeObject(name);
        out.writeInt(age);
    }

    @Override
    public void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        name = (String) in.readObject();
        age = in.readInt();
    }

    public static void main(String[] args) {
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
            Person person = new Person("John", 30);
            out.writeObject(person);
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("person.ser"))) {
            Person person = (Person) in.readObject();
            System.out.println(person.name + ", " + person.age);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Das obige ist der detaillierte Inhalt vonWie läuft die Objektserialisierung in Java ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn