序列化和对象存储为实例变量

时间:2013-05-16 02:53:16

标签: java serialization

我对序列化感到有些困惑。

我有一个类,我们称之为Container。 Container类的变量包含其他类的ArrayLists - A,B,C等......

如果我要序列化并保存Container,那么我会在阅读之后(并且,为了清楚起见,我理解如何做这部分)可以访问类A,B等的相同实例或者做他们需要单独序列化?另外,A,B等是否需要实现Serializable是否由Container覆盖呢?

提前致谢

2 个答案:

答案 0 :(得分:3)

这取决于您使用的Collection是如何序列化的。

如果您使用的是ArrayList,那么它会序列化List中的所有项目。

为了序列化内容,内容需要implement Serializable,否则需要将其标记为transient

所以,回答你的两个问题:

  • 1)如果我要序列化并保存Container,那么我是否可以访问A,B类相同的实例?
  • 2)做A,B等需要实现Serializable吗?

答案 1 :(得分:0)

我们知道序列化是将对象保存在存储介质(例如文件或内存缓冲区)中或通过网络连接以二进制形式传输的过程。序列化对象是独立于JVM的,可以通过任何JVM重新序列化。例如here