Was ist Serialisierung?
Serialisierung ist der Prozess der Umwandlung eines Java-Objekts in ein Format, das in einem Dateisystem oder in einem Netzwerkstream gespeichert werden kann. In der Regel wird das Serialisierungsformat als Binärdatei gespeichert. Durch den Serialisierungsprozess werden alle Informationen, die für die Wiederverwendung eines Objekts erforderlich sind, in eine binäre Repräsentation umgewandelt.
Serialisierung ermöglicht die Übertragung von Objekten über Netzwerkverbindungen und ermöglicht auch die persistente Speicherung von Objekten auf Festplatte oder anderen permanenten Speichermedien. Deserialisierung ist der umgekehrte Prozess, durch den ein serialisiertes Objekt in seine ursprüngliche Form zurückkonvertiert wird.
Welche Objekte können serialisiert werden?
Nur die Objekte, die das Serializable-Interface implementieren, können serialisiert werden. Dieses Interface markiert das zugrunde liegende Objekt als serialisierbar und gibt implizite Anweisungen, wie das Objekt serialisiert werden sollte. Das Serializable-Interface enthält jedoch keine Methoden, sodass es von jedem Objekt implementiert werden kann, ohne dass dafür codebezogene Änderungen erforderlich sind.
Wie man ein Objekt in Java serialisiert
Das Serialisieren eines Java-Objekts ist einfach und erfordert nur wenige Zeilen Code. Das folgende Beispiel zeigt, wie ein einfaches Objekt serialisiert werden kann:
„`
public class Person implements java.io.Serializable {
public String firstName;
public String lastName;
public int age;
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setAge(int age) {
this.age = age;
}
}
„`
In diesem Beispiel ist das Serializable-Interface in der Person-Klasse implementiert. Daher kann ein Objekt der Klasse Person serialisiert werden.
Die Serialisierung kann wie folgt durchgeführt werden:
„`
import java.io.*;
public class SerializeDemo {
public static void main(String [] args) {
Person person = new Person();
person.setFirstName(„John“);
person.setLastName(„Doe“);
person.setAge(25);
try {
FileOutputStream fileOut =
new FileOutputStream(„/tmp/person.ser“);
ObjectOutputStream out =
new ObjectOutputStream(fileOut);
out.writeObject(person);
out.close();
fileOut.close();
System.out.printf(„Serialized data is saved in /tmp/person.ser“);
} catch(IOException i) {
i.printStackTrace();
}
}
}
„`
In diesem Beispiel wird ein Objekt der Klasse Person erstellt und mit Werten initialisiert. Anschließend wird das Objekt in die Datei „/tmp/person.ser“ serialisiert. Die FileOutputStream- und ObjectOutputStream-Klassen werden verwendet, um das serialisierte Objekt in die Datei zu schreiben.
Zusammenfassung
Serialisierung ist ein wichtiger Teil der Java-Programmierung, da sie die Übertragung von Objekten über Netzwerkverbindungen ermöglicht und die persistente Speicherung von Objekten auf Festplatte oder anderen permanenten Speichermedien erlaubt. Das Serializable-Interface ist erforderlich, um Objekte serialisierbar zu machen. Der Serialisierungsprozess ist einfach und erfordert nur wenige Zeilen Code. Durch das Serialisieren von Objekten in Java können Programmierer komplexe Datenstrukturen speichern und wiederherstellen, die von ihren Anwendungen verwendet werden.