Dieser Artikel teilt die Serialisierung und Deserialisierung von Java -Objekten für Ihre Referenz. Der spezifische Inhalt ist wie folgt
1. Was ist Serialisierung
Konvertieren Sie ein Objekt in einen Byte -Stream und speichern Sie es, z. B. das Speichern in einer Datei und das spätere Wiederherstellung des Objekts. Dieser Mechanismus wird als Objektserialisierung bezeichnet. (Zusätzlicher Satz: Das Speichern von Objekten in dauerhaften Speichergeräten wird als Persistenz bezeichnet.)
2. So implementieren Sie Serialisierung <BR /> Es ist erforderlich, die serialisierbare Schnittstelle zu implementieren. Wenn ein Java -Objekt diese Schnittstelle implementiert, bedeutet dies, dass das Objekt dieser Klasse serialisierbar ist.
3. Anmerkungen zur Serialisierung
(1) Wenn ein Objekt serialisiert ist, kann es nur nicht statische Elementvariablen des Objekts speichern und keine Methoden und statischen Elementvariablen speichern.
(2) Objekt A bezieht sich auf Objekt B, Objekt A ist serialisiert und B wird ebenfalls serialisiert.
(3) Wenn ein serialisierbares Objekt einen Verweis auf ein unverzählter Objekt enthält, fällt die gesamte Serialisierungsoperation aus, und es wird eine nichtserialisierbare Ausnahme ausgeworfen. Daher müssen sowohl das Objekt als auch das Referenzobjekt die serialisierbare Schnittstelle implementieren, bevor die Serialisierung durchgeführt werden kann.
(4) Wenn die Verwendung von transienten, Mitgliedsvariablen oder Referenzen als transient gekennzeichnet ist, kann das Objekt weiterhin bestellt werden, es wird jedoch nicht in die Datei serialisiert.
4. Code
Person der öffentlichen Klasse implementiert serialisierbar {private String -Name; privates transientes int -Alter; öffentliche Person (String -Name, int Alter) {Super (); this.name = name; this.age = Alter; } public String toString () {return this.name + "-" + this.age; }} öffentliche Klasse SerializableClient {public static void main (String [] args) löst eine Ausnahme aus {Person p1 = new Person ("Zhangsan", 5); Person P2 = neue Person ("Lisi", 100); // serialize FileOutputStream fos = new FileOutputStream ("person.txt"); ObjectOutputStream OOS = New ObjectOutputStream (FOS); oos.writeObject (p1); oos.writeObject (p2); System.out.println ("----------"); // Deserialize FileInputStream fis = new FileInputStream ("Person.txt"); ObjectInputStream OIS = New ObjectInputStream (FIS); für (int i = 0; i <2; i ++) {Person tempperson = (Person) ois.ReadObject (); System.out.println (tempperson); }}}
Ausgangsergebnis:
------------
Zhangsan-0
li-0
5. feinkörnige Kontrolleserialisierung und Deserialisierung
Wenn wir die beiden oben genannten privaten Methoden in der Serialisierung oder Deserialisierungsklasse implementieren (die Methodeerklärung muss vollständig mit dem oben genannten übereinstimmen), ermöglicht es uns, den Prozess der Serialisierung und Deserialisierung auf zugrunde liegende und mehr geerbtere granuläre Weise zu steuern.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.