Inhaltsverzeichnis
1 Serialisierung" >1 Serialisierung
1 Was ist Serialisierung? " >1 Was ist Serialisierung?
2. Die Rolle der Serialisierung " > 2. Die Rolle der Serialisierung
3. Bedingungen für die Serialisierung " > 3. Bedingungen für die Serialisierung
5. Felder, die nicht serialisiert werden können: " > 5. Felder, die nicht serialisiert werden können:
6. Serialisierungsvorgang: " >6. Serialisierungsvorgang:
2 Deserialisierung" > 2 Deserialisierung
1. Was ist Deserialisierung?" >1. Was ist Deserialisierung?
2. Anforderungen an den Deserialisierungsvorgang " >2. Anforderungen an den Deserialisierungsvorgang
3. Serialisierungsversionsnummer " > 3. Serialisierungsversionsnummer
⑷Parsing-Prozess" >⑷Parsing-Prozess
⑸Betrieb in umgekehrter Reihenfolge: " > ⑸Betrieb in umgekehrter Reihenfolge:
Heim Java javaLernprogramm Was ist Serialisierung? Eine ausführliche Einführung in die Serialisierung

Was ist Serialisierung? Eine ausführliche Einführung in die Serialisierung

Jun 20, 2017 pm 02:25 PM
序列化

1 Serialisierung

1 Was ist Serialisierung?

Das Schreiben von Objekten im Speicher auf die Festplatte ist eine Serialisierung, die sich nicht von der allgemeinen Ausgabe unterscheidet, außer dass die Ausgabedaten ein Objekt und kein gewöhnlicher Text sind.

2. Die Rolle der Serialisierung

Da die Speicherung von Daten im Speicher temporär ist, müssen Sie das Objekt für längere Zeit speichern Zeit muss das Objekt sein. Das Schreiben auf die Festplatte führt zur Serialisierung.

3. Bedingungen für die Serialisierung

Damit ein Objekt serialisiert werden kann, muss die Klasse, zu der das Objekt gehört, die Serializable-Schnittstelle implementieren Schnittstelle Es handelt sich um eine ikonische Schnittstelle ohne Felder und abstrakte Methoden. Wenn die JVM auf diese Schnittstelle trifft, weist sie der Klasse eine serialisierte Versionsnummer zu.

4. Ein Objekt wird serialisiert und die globalen Variablen im Objekt, einschließlich privater Typvariablen, werden auf die Festplatte geschrieben.

5. Felder, die nicht serialisiert werden können:

  1. Statische Felder können nicht serialisiert werden, der Wert einer statischen Variablen Es handelt sich um den Wert in der aktuellen JVM, nicht um den bei der Serialisierung festgelegten Wert.

  2. Durch Transient geänderte Felder können nicht serialisiert werden.

6. Serialisierungsvorgang:

OutputStream ops=new FileOuptStream(path);
ObjectOuptStream oos=new ObjectOutputStream(ops);
Object obj=new Ojbect();
oos.writeObject(obj);
Nach dem Login kopieren

2 Deserialisierung

1. Was ist Deserialisierung?

Deserialisierung besteht darin, die Daten auf der Festplatte in den Speicher zu schreiben und in Dateien gespeicherte Objekte zu erhalten .

2. Anforderungen an den Deserialisierungsvorgang

Die Reihenfolge der Deserialisierung muss mit der Reihenfolge der Serialisierung übereinstimmen.

3. Serialisierungsversionsnummer

⑴ Während der Serialisierung wird eine lange Nummer generiert, die Serialisierungsversionsnummer genannt, und unter gespeichert Vergleichen Sie in serialisierten Dateien und Klassendateien die beiden -Nummern während der Deserialisierung. Wenn sie gleich sind, ist die Serialisierung erfolgreich. Wenn sie nicht gleich sind, kann die Deserialisierung nicht durchgeführt werden.

⑵ Die serialisierte Versionsnummer wird verwendet, um die Version der Entitätsklasse zu markieren, sobald die Entitätsklasse geändert wird, wenn die serialisierte Versionsnummer nicht explizit angegeben wird , generiert das System automatisch eine neue Versionsnummer. Wenn die beiden Versionsnummern unterschiedlich sind, können sie nicht serialisiert werden. Im Allgemeinen wird die Serialisierungsversionsnummer explizit in der Entitätsklasse festgelegt, die serialisiert werden muss.

⑶ Wenn keine Neukompilierung erfolgt, wird nicht unbedingt eine neue serialisierte Versionsnummer generiert. Nur wenn sich die Entitätsklasse ändert, wird eine neue serialisierte Versionsnummer generiert.

⑷Parsing-Prozess

Vergleichen Sie beim Deserialisieren zunächst, ob die serialisierte Versionsnummer in der serialisierten Datei und der Klassendatei identisch ist sind gleich, was darauf hinweist, dass die serialisierte Datei von der aktuellen -Klassendatei generiert wird und nicht gleich deserialisiert werden kann, was darauf hinweist, dass sie nicht von der aktuellen Klassendatei generiert wird und die Version inkonsistent ist deserialisiert werden.

⑸Betrieb in umgekehrter Reihenfolge:

InputStream is=new FileInputStream(path);
ObjectInputStream ois=new ObjectIputStream(is);
Object obj=ois.readObject();
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist Serialisierung? Eine ausführliche Einführung in die Serialisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie können wir in Java eine Liste von Objekten mit FlexJson serialisieren? Wie können wir in Java eine Liste von Objekten mit FlexJson serialisieren? Sep 05, 2023 pm 11:09 PM

Flexjson ist eine schlanke Bibliothek zum Serialisieren und Deserialisieren von Java-Objekten in und aus dem JSON-Format. Wir können eine Liste von Objekten mit der Methode serialize() der Klasse JSONSerializer serialisieren. Diese Methode führt eine flache Serialisierung auf der Zielinstanz durch. Wir müssen eine Liste von Objekten vom Typ Liste als Parameter an die Methode serialize() übergeben. Syntax publicStringserialize(Objecttarget) Beispiel importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerial

Wie wirkt sich die Java-Serialisierung auf die Leistung aus? Wie wirkt sich die Java-Serialisierung auf die Leistung aus? Apr 16, 2024 pm 06:36 PM

Die Auswirkungen der Serialisierung auf die Java-Leistung: Der Serialisierungsprozess basiert auf Reflexion, was sich erheblich auf die Leistung auswirkt. Die Serialisierung erfordert die Erstellung eines Bytestroms zum Speichern von Objektdaten, was zu Speicherzuweisungs- und Verarbeitungskosten führt. Das Serialisieren großer Objekte verbraucht viel Speicher und Zeit. Serialisierte Objekte erhöhen die Belastung, wenn sie über das Netzwerk übertragen werden.

PHP-Datenverarbeitungskenntnisse: Verwendung der Serialisierungs- und Deserialisierungsfunktionen zur Implementierung der Datenserialisierung und -deserialisierung PHP-Datenverarbeitungskenntnisse: Verwendung der Serialisierungs- und Deserialisierungsfunktionen zur Implementierung der Datenserialisierung und -deserialisierung Jul 29, 2023 am 10:49 AM

PHP-Datenverarbeitungsfähigkeiten: Verwendung der Serialisierungs- und Deserialisierungsfunktionen zur Implementierung der Datenserialisierung und -deserialisierung. Serialisierung und Deserialisierung sind eine der am häufigsten verwendeten Datenverarbeitungsfähigkeiten in der Informatik. In PHP können wir die Funktionen serialize() und unserialize() verwenden, um Datenserialisierungs- und Deserialisierungsvorgänge zu implementieren. In diesem Artikel erhalten Sie eine detaillierte Einführung in die Verwendung dieser beiden Funktionen und stellen relevante Codebeispiele bereit. 1. Was ist Serialisierung und Deserialisierung in der Computerprogrammierung?

Wie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch? Wie führt die C++-Funktionsbibliothek die Serialisierung und Deserialisierung durch? Apr 18, 2024 am 10:06 AM

Leitfaden zur Serialisierung und Deserialisierung der C++-Bibliothek Serialisierung: Erstellen eines Ausgabestreams und Konvertieren desselben in ein Archivformat. Objekte ins Archiv serialisieren. Deserialisierung: Erstellt einen Eingabestream und stellt ihn aus dem Archivformat wieder her. Deserialisieren Sie Objekte aus dem Archiv. Praxisbeispiel: Serialisierung: Erstellen eines Ausgabestreams. Erstellen Sie ein Archivobjekt. Erstellen Sie Objekte und serialisieren Sie sie im Archiv. Deserialisierung: Erstellen Sie einen Eingabestream. Erstellen Sie ein Archivobjekt. Erstellen Sie Objekte und deserialisieren Sie sie aus dem Archiv.

Wie serialisiere ich die Reihenfolge von Eigenschaften mithilfe der Jackson-Bibliothek in Java? Wie serialisiere ich die Reihenfolge von Eigenschaften mithilfe der Jackson-Bibliothek in Java? Aug 28, 2023 pm 12:45 PM

@JsonPropertyOrder ist eine Annotation, die auf Klassenebene verwendet wird. Als Attribut wird eine Liste von Feldern verwendet, die die Reihenfolge definiert, in der die Felder in der durch die JSON-Serialisierung des Objekts generierten Zeichenfolge erscheinen. In der Annotationsdeklaration enthaltene Eigenschaften können zuerst serialisiert werden (in der Reihenfolge, in der sie definiert sind), gefolgt von allen Eigenschaften, die nicht in der Definition enthalten sind. Syntax public@interfaceJsonPropertyOrder Beispiel importcom.fasterxml.jackson.core.*;importcom.fasterxml.jackson.databind.*;importcom.fasterxml.jac

Serialisierung und Deserialisierung von Schnittstellen und abstrakten Klassen in Java Serialisierung und Deserialisierung von Schnittstellen und abstrakten Klassen in Java May 02, 2024 am 08:33 AM

Schnittstellen können nicht direkt serialisiert werden, aber nur, wenn sie keine nicht-statischen, nicht-transienten Felder enthalten oder die Methoden writeObject() und readObject() überschreiben. Bestimmte Instanzen können durch konkrete Klassen implementiert werden, die die Schnittstelle implementieren oder überschreiben Sie die Methoden writeObject() und readObject.

Serialisierung und Deserialisierung von Golang-Funktionstypen Serialisierung und Deserialisierung von Golang-Funktionstypen Apr 29, 2024 am 08:15 AM

GoLang-Funktionstypen können über das Paket „encoding/gob“ serialisiert und deserialisiert werden. Serialisierung: Registrieren Sie einen benutzerdefinierten Typ und verwenden Sie gob.NewEncoder, um den Funktionstyp in ein Byte-Array zu codieren. Deserialisierung: Verwenden Sie gob.NewDecoder, um Funktionstypen aus Byte-Arrays zu deserialisieren.

Wie serialisiere ich eine Karte mithilfe der FlexJSON-Bibliothek in Java? Wie serialisiere ich eine Karte mithilfe der FlexJSON-Bibliothek in Java? Aug 26, 2023 pm 08:13 PM

Flexjson ist eine schlanke Bibliothek zum Serialisieren und Deserialisieren von Java-Objekten in und aus dem JSON-Format. Wir können eine Map auch mit der Methode serialize() der Klasse JSONSerializer serialisieren, die eine flache Serialisierung auf der Zielinstanz durchführt. Syntax publicStringserialize(Objecttarget) Beispiel importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerializeMapTest{ publ

See all articles