因此,所有对象都被序列化,但每个对象都包含对集合中另一个对象(相同类型)的引用。我认为我应该将其命名为 transient ,存储一个可用于在反序列化时再次获取对象的字符串,然后在此时恢复它。但在这种情况下,我会在覆盖的 readObject 方法中执行此操作吗?如果这个解释有道理,有人可以帮忙吗?谢谢。
最佳答案
没有必要这样做。 Java的序列化可以处理循环引用。 ObjectInputStream 和 ObjectObjectStream 都会跟踪它们已经处理过的对象,以防止无限序列化循环。如果您长时间保留流,这可能会导致内存泄漏。
关于java - 当序列化一个对象集合时,每个对象都包含对集合中另一个对象的引用,它会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6903353/