As an assignment question, I am asked to answer the following:
How are cycles handled? Where does the term graph come from?
In the examples given, there does not appear to be any clear trick that was done to serialize a cyclic linked list, so I can't discern if anything special is being done on the part of the programmer, or if it's handled internally by the JVM. Moreover, a Google search does not appear to answer the question other than to say that the JVM handles cyclic serialization natively by not re-serializing objects. But I'm not satisfied that this actually answers the question of "how".
My best guess is that some form of spanning tree algorithm is run on the object graph to remove cycles, but again, this is unconfirmed...
Where can I find information to help answer this question?