Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Objektserialisierung und -deserialisierung in Java

Detaillierte Erläuterung der Objektserialisierung und -deserialisierung in Java

高洛峰
高洛峰Original
2017-01-18 10:42:081112Durchsuche

Serialisierung ist der Prozess der Umwandlung der Zustandsinformationen eines Objekts in eine Form, die gespeichert oder übertragen werden kann. Im Allgemeinen wird ein Objekt in einem Speichermedium, beispielsweise einer Datei oder einem Speicherpuffer, gespeichert. Bei der Netzwerkübertragung kann es im Byte- oder XML-Format vorliegen. Byte- oder XML-Kodierungsformate können genau gleichwertige Objekte wiederherstellen. Dieser umgekehrte Vorgang wird auch Deserialisierung genannt.
Serialisierung und Deserialisierung von Java-Objekten
In Java können wir Objekte auf verschiedene Arten erstellen und wir können das Objekt wiederverwenden, solange das Objekt nicht recycelt wird. Diese von uns erstellten Java-Objekte sind jedoch im Heap-Speicher der JVM vorhanden. Diese Objekte dürfen nur vorhanden sein, wenn die JVM ausgeführt wird. Sobald die JVM nicht mehr ausgeführt wird, geht der Status dieser Objekte verloren.
Aber in realen Anwendungsszenarien müssen wir diese Objekte beibehalten und in der Lage sein, sie bei Bedarf erneut zu lesen. Die Objektserialisierung von Java kann uns dabei helfen, diese Funktion zu erreichen.
Der Objektserialisierungsmechanismus (Objektserialisierung) ist eine integrierte Objektpersistenzmethode in der Java-Sprache. Durch die Objektserialisierung kann der Status des Objekts als Byte-Array gespeichert und dieses Wort bei Bedarf verwendet werden. Das Abschnittsarray wird durch Deserialisierung in ein Objekt umgewandelt. Die Objektserialisierung erleichtert die Konvertierung zwischen Live-Objekten und Byte-Arrays (Streams) in der JVM.
In Java werden Objektserialisierung und -deserialisierung häufig bei RMI (Remote-Methodenaufruf) und Netzwerkübertragung verwendet.
Relevante Schnittstellen und Klassen
Java bietet eine Reihe praktischer API-Unterstützung für Entwickler zum Serialisieren und Deserialisieren von Java-Objekten. Es umfasst die folgenden Schnittstellen und Klassen: 🎜> ObjectOutputStream

ObjectInputStream

Serialisierbare Schnittstelle

Die Klasse implementiert die java.io.Serializable-Schnittstelle, um ihre Serialisierungsfunktion zu aktivieren . Eine Klasse, die diese Schnittstelle nicht implementiert, kann keinen ihrer Zustände serialisieren oder deserialisieren. Alle Untertypen einer serialisierbaren Klasse sind selbst serialisierbar. Die Serialisierungsschnittstelle verfügt über keine Methoden oder Felder und wird nur zur Identifizierung serialisierbarer Semantik verwendet. (Diese Schnittstelle hat keine Methoden und Felder. Warum können nur Objekte von Klassen serialisiert werden, die diese Schnittstelle implementieren?)

Wenn Sie versuchen, ein Objekt zu serialisieren, stoßen Sie auf ein Objekt, das die Serializable-Schnittstelle nicht unterstützt. In diesem Fall wird eine NotSerializableException ausgelöst.

Wenn die zu serialisierende Klasse eine übergeordnete Klasse hat und Sie gleichzeitig die in der übergeordneten Klasse definierten Variablen beibehalten möchten, sollte die übergeordnete Klasse auch die Schnittstelle java.io.Serializable integrieren.

Das Folgende ist eine Klasse, die die java.io.Serializable-Schnittstelle implementiert

Serialisierung und Deserialisierung werden durch den folgenden Code durchgeführt


Das Obige ist der gesamte Artikel Inhaltlich hoffe ich, dass es für alle hilfreich ist, die Objektserialisierung und -deserialisierung in Java zu lernen.

Ausführlichere Artikel zur Objektserialisierung und -deserialisierung in Java finden Sie auf der chinesischen PHP-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