Wir klären, was zyklische Referenzen in Objektgraphen sind, warum sie für die Serialisierung problematisch sind und wie man damit umgeht. Es wird gezeigt, wie die Standard-Streams von Java –
ObjectOutputStream/
ObjectInputStream – bereits gesehene Objekte automatisch nachverfolgen und Verweise (Handles) schreiben, wodurch
StackOverflowError verhindert wird. Wir besprechen Fallstricke benutzerdefinierter Serialisierung (
writeObject/
readObject,
defaultWriteObject/
defaultReadObject) sowie Strategien zur Umgehung von Zyklen bei JSON: Annotationen
@JsonIdentityInfo,
@JsonBackReference/
@JsonManagedReference, das Ausschließen von Feldern via
transient und die Verwendung von Identifikatoren.