序列化是一个比较纠结的东西,而java中涉及到序列化接口又分为Serializable和Externalizable。
区别为Serializable使用的是默认序列化行为和算法,而当你需要自己来控制序列化行为时,使用Externalizable。
当一个类实现Serializable接口时,在把该类的对象放入I\O流时,会自动保存该对象的状态(即内容)以及该对象所引用到的所有对象的状态,即对象网。
当从单一流中取出对象时,我们可以恢复出和写入时一样的对象网,而没有任何意外重复复制出的对象(包括内存地址)。