当序列化一组对象时,每个对象都包含对集合中另一个对象的引用,它会做什么?

时间:2011-08-01 19:28:31

标签: java serialization collections reference

因此,所有对象都被序列化,但每个对象都包含对集合中另一个对象(同一类型)的引用。我想我应该将其命名为transient,在反序列化时存储可用于再次获取对象的字符串,然后在该点恢复它。在那种情况下,我会在覆盖的readObject方法中这样做吗?如果这个解释有意义,有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

没有必要这样做。 Java的序列化可以处理循环引用。 ObjectInputStream和ObjectObjectStream都跟踪它们已经处理的对象,以防止无限的序列化循环。如果长时间保持流,这可能会导致内存泄漏。