Serialisieren, was bringt das?

davidh38

Bekanntes Mitglied
Hallo Leute,

ist Serialisieren von Objekten dazu da, damit man zum Beispiel bei Netzwerken kein Protokoll erfinden muss oder bei der Speicherung von Daten in ein File sich erstmal eine Struktur ausdenken muss, in der gespeichert werden soll?
Gibt es noch mehr Vor- bzw. auch Nachteile?
 
Also ich bin da kein Spezialist. Ich weiß nur noch vom Keyword
Code:
transient
, das einem die Möglichkeit gibt gewisse Teile eines Objekts aus der Serialisierung auszuschließen:

Java:
class MyObject implements Serializable{

   private SomeData x;
   private transient SomeData y; // y wird nicht serialisiert
}

Das wäre quasi noch ein Vorteil. Die Frage ist was du genau meinst - Vor-/Nachteile gegenüber was?
 
Nachteil: Die Javaserialisierung ist lahm und aufgebläht.
Vorteil: Es ist tierisch einfach zu benutzen.

Zu deiner Frage: Serialisierung nimmt dir nicht ab, ein Protokoll zu erfinden, aber du musst dir keine Sorgen um die ÜBertragung der Daten machen....
 
Serialisierung sit nicht zur übertragung gedacht, (wenn auch oft misbracht)
Wie die javadocs dazu sagen aknn sich die art wie das arbeitet jederzeit ändern, somit sind unterschiedliche jvm versionen nicht umbedingt kompatible. Die serialisierung ist für kurzzeitige speicherung von belibigen Daten gedacht.
 
Serialisierung sit nicht zur übertragung gedacht, (wenn auch oft misbracht)
Wie die javadocs dazu sagen aknn sich die art wie das arbeitet jederzeit ändern, somit sind unterschiedliche jvm versionen nicht umbedingt kompatible. Die serialisierung ist für kurzzeitige speicherung von belibigen Daten gedacht.
Übertragung ist eine Form von extrem kurzzeitiger Datenspeicherung. Also ist der Einsatz von Serialisierung zur Datenübertragung absolut in Ordnung.
 
somit sind unterschiedliche jvm versionen nicht umbedingt kompatible

Übertragung ist eine Form von extrem kurzzeitiger Datenspeicherung. Also ist der Einsatz von Serialisierung zur Datenübertragung absolut in Ordnung.

Aber nicht wenn auf den beiden Seiten unterschiedliche JVMs laufen, dann könnte es sein das sie sich nicht
verstehen (bzw. die serialisierten Daten).
 
Aber nicht wenn auf den beiden Seiten unterschiedliche JVMs laufen, dann könnte es sein das sie sich nicht
verstehen (bzw. die serialisierten Daten).
Mit den VMs hat das nicht so viel zu tun. Auf beiden Seiten müssen sämtliche serialisierten Klassen mit identischen serialUIDs und identischen nicht-transienten Member-Variablen bekannt sein. Wenn das nicht der Fall ist, wird's nichts mit Serialisierung - wofür auch immer man die verwenden mag.
 

Zurück
Oben