当前位置: 代码迷 >> J2SE >> 关于Serializable,为啥实现Serializable就能够实现序列化
  详细解决方案

关于Serializable,为啥实现Serializable就能够实现序列化

热度:115   发布时间:2016-04-23 21:43:58.0
关于Serializable,为什么实现Serializable就能够实现序列化
本帖最后由 kolnick 于 2013-09-16 10:07:49 编辑
为什么实现Serializable接口就能实现序列号, 我查看Serializable接口的源码 里面并没有定义任何方法 
求指导

------解决方案--------------------
它是个标识接口。
------解决方案--------------------
序列化是历史遗留问题,也可以说是Java中设计瑕疵之一。

“为什么实现Serializable就能够实现序列化”

简单回答就是 ObjectInputStream 和 ObjectOutputStream 中的关键方法都会对要序列化的 Object 做检查,其类型必须是 Serializable。

正确的序列化设计要做的工作绝对不仅仅是加个 implements Serializable 这么简单。
------解决方案--------------------
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
  相关解决方案