`

eclipse中编写Exception时使用的serialVersionUID

阅读更多
serialVersionUID作用:
序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

所谓序列化,就是把一个类或对象转化成数据流的形式,进行数据传输(特别是IO操作和网络传输),而反序列化当然就是逆过程。
JAVA中实现序列化的基本过程是:
      (1)将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,
      (2)然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象
      (3)接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。


在eclipse中,当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义之。有两种生成方式:
一个是默认的1L,比如:private static final long serialVersionUID = 1L;
一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之类的。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics