public class Contact implements Serializable {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- Wann sollte ich die
Serializable
Schnittstelle implementieren ? - Warum machen wir das?
- Gibt es irgendwelche Vorteile oder Sicherheit?
java
serialization
theJava
quelle
quelle
Antworten:
Von Was ist die „Serialisierung“ Sache über allem? ::
Implementieren Sie die
Serializable
Schnittstelle, wenn Sie eine Kopie des Objekts speichern müssen, und senden Sie sie an einen anderen Prozess, der auf demselben System oder über das Netzwerk ausgeführt wird.Weil Sie ein Objekt speichern oder senden möchten.
Es erleichtert das Speichern und Senden von Objekten. Es hat nichts mit Sicherheit zu tun.
quelle
Implementieren Sie die
Serializable
Schnittstelle, wenn Sie eine Instanz einer Klasse in eine Reihe von Bytes konvertieren möchten oder wenn Sie glauben, dass einSerializable
Objekt auf eine Instanz Ihrer Klasse verweisen könnte.Serializable
Klassen sind nützlich, wenn Sie Instanzen von ihnen beibehalten oder über eine Leitung senden möchten.Instanzen von
Serializable
Klassen können leicht übertragen werden. Die Serialisierung hat jedoch einige Sicherheitsfolgen. Lesen Sie Joshua Blochs effektives Java .quelle
Die Antwort auf diese Frage ist vielleicht überraschenderweise nie oder realistischer nur dann, wenn Sie zur Interoperabilität mit Legacy-Code gezwungen sind . Dies ist die Empfehlung in Effective Java, 3. Ausgabe von Joshua Bloch:
Laut Mark Reinhold, dem Chefarchitekten von Oracle, ist das Entfernen des aktuellen Java-Serialisierungsmechanismus ein langfristiges Ziel.
Warum die Java-Serialisierung fehlerhaft ist
Java bietet als Teil der Sprache ein Serialisierungsschema, für das Sie sich über die
Serializable
Schnittstelle entscheiden können. Dieses Schema weist jedoch mehrere unlösbare Mängel auf und sollte von den Java-Sprachdesignern als fehlgeschlagenes Experiment behandelt werden.Was ist stattdessen zu tun?
Verwenden Sie stattdessen ein Serialisierungsschema, das Sie explizit steuern können. B. Protokollpuffer, JSON, XML oder Ihr eigenes benutzerdefiniertes Schema.
quelle