Serialisierung ist ein Prozess der Umwandlung eines Objekts in eine Folge von Bytes, die auf einer Festplatte oder Datenbank beibehalten oder über Streams gesendet werden können. Der umgekehrte Vorgang zum Erstellen eines Objekts aus einer Folge von Bytes wird als Deserialisierung bezeichnet.

Eine Klasse muss eine serialisierbare Schnittstelle implementieren, die im java.io – Paket vorhanden ist, um ihr Objekt erfolgreich zu serialisieren., Serializable ist eine Marker-Schnittstelle, die der implementierenden Klasse serialisierbares Verhalten hinzufügt.

Java bietet Serializable API gekapselt unter java.io Paket zum serialisieren und Deserialisieren von Objekten, die,

  • java.io.serializable
  • java.io.Externalizable
  • ObjectInputStream
  • ObjectOutputStream

Java-Marker-interface

Marker-Interface ist eine spezielle Schnittstelle in Java ohne Feld und Methode., Die Marker-Schnittstelle wird verwendet, um den Compiler darüber zu informieren, dass die Klasse, die sie implementiert, ein besonderes Verhalten oder eine besondere Bedeutung hat. Einige Beispiele für Marker-Schnittstelle sind,

  • java.io.serializable
  • java.lang.Cloneable
  • java.rmi.Remote
  • java.util.RandomAccess

Alle diese Schnittstellen haben keine Methode und feld. Sie fügen den Klassen, die sie implementieren, nur spezielles Verhalten hinzu. Schnittstellen sind jedoch seit Java 5 veraltet, sie wurden durch Anmerkungen ersetzt., Anmerkungen werden anstelle von Marker-Schnittstellen verwendet, die genau die gleiche Rolle spielen wie Marker-Schnittstellen zuvor.

Um die Serialisierung und Deserialisierung zu implementieren, bietet Java zwei Klassen ObjectOutputStream und ObjectInputStream.

ObjectOutputStream Klasse

Es wird verwendet, um Objektzustände in die Datei zu schreiben. Ein Objekt, das java.io.Serializable Schnittstelle implementiert, kann in strams geschrieben werden. Es bietet verschiedene Methoden zur Serialisierung.

ObjectInputStream Klasse

Ein ObjectInputStream deserialisiert Objekte und primitive Daten geschrieben, mit einem ObjectOutputStream.,

writeObject() und readObject () Methoden

Die writeObject() Methode der ObjectOutputStream Klasse serialisiert ein Objekt und sendet es an den Ausgabestream.

public final void writeObject(object x) throws IOException

Die readObject() – Methode von ObjectInputStream verweist auf ein Objekt aus dem Stream und deserialisiert es.

public final Object readObject() throws IOException,ClassNotFoundException

während der Serialisierung Wenn Sie nicht möchten, dass ein Feld Teil des Objektstatus ist, deklarieren Sie es basierend auf Ihren Anforderungen entweder statisch oder vorübergehend und es wird während des Java-Serialisierungsprozesses nicht enthalten sein.,

Beispiel: Serialisieren eines Objekts in Java

In diesem Beispiel haben wir eine Klasse, die serialisierbare Schnittstelle implementiert, um sein Objekt serialisiert zu machen.

Das Objekt der Studentinfo-Klasse wird mit der writeObject() – Methode serialisiert und in die student.txt – Datei geschrieben.

Beispiel: Deserialisierung des Objekts in Java

Um das Objekt zu deserialisieren, verwenden wir die ObjectInputStream-Klasse, die das Objekt aus der angegebenen Datei liest. Siehe das folgende Beispiel.,

Abhi104null

Kontakt-Feld ist null, da es geprägt war als statische und wie wir bereits früher diskutiert statische Felder nicht serialisiert werden.

HINWEIS: Statische Member werden niemals serialisiert, da sie mit class not object of class verbunden sind.

transientes Schlüsselwort

Wenn beim Serialisieren eines Objekts bestimmte Datenelemente des Objekts nicht serialisiert werden sollen, können wir es vorübergehend erwähnen. transient keyword verhindert, dass dieses Datenelement serialisiert wird.,

class studentinfo implements Serializable { String name; transient int rid; static String contact;}
  • Das Erstellen eines Datenelements transient verhindert dessen Serialisierung.
  • In diesem Beispiel wird rid nicht serialisiert, da es vorübergehend ist, und contact bleibt auch nicht serialisiert, da es statisch ist.