package java.io;

public interface Serializable {
}

(1)实现Serializable接口的类,将会被提示提供一个 serialVersionUID

注意点一、序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
     有两种生成方式:
              ①一个是默认的1L,比如:private static final long serialVersionUID = 1L;
              ②一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:
              private static final   long     serialVersionUID = xxxxL;

注意点二、当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义 。在Eclipse中点击类中warning的图标一下,Eclipse 就会自动给定两种生成的方式。如果不想定义它,在Eclipse的设置中也可以把它关掉的,设置如下:

Window -> Preferences -> Java -> Compiler -> Error/Warnings ->Potential programming problems
             将Serializable class without serialVersionUID的warning改成ignore即可。

注意点三、如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了

         Serializable这个接口的话,如果没有加入 serialVersionUID,Eclipse都会给你warning提示,这个

             serialVersionUID为了让该类别 Serializable向后兼容。

如果你的类Serialized存到硬盘上面后,可是后来你却更改了类别的field(增加或减少或改名),当你

Deserialize时,就会出现Exception的,这样就会造成不兼容性的问题。

但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize,可避开不兼容性 问题。

最新文章

  1. python 聊天室
  2. Guava------------Cache使用方法
  3. POJ 2236 Wireless Network (并查集)
  4. 程序模拟浏览器请求及会话保持-python实现
  5. 子div块中设置margin-top时影响父div块位置的解决办法
  6. LInux last命令详解
  7. iframe 背景透明设置--兼容IE
  8. 键盘坏了几个键位之后,linux上的remap方法
  9. Technical
  10. tensorflow 1.0 学习:池化层(pooling)和全连接层(dense)
  11. Linux C 实现一个简单的线程池
  12. flask自定义转换器
  13. can't open file 'manage.py': [Errno 2] No such file or directory
  14. webview相关知识
  15. MD5加密及Hash长度拓展攻击【通俗易懂】
  16. PyQt5--MenuBar
  17. AsynchronousFileChannel 使用的默认线程池的疑问
  18. 搭建自己的挂Q平台
  19. idea心得
  20. AVL树理解

热门文章

  1. 导出Unity场景为配置文件
  2. C# 枚举 字符串 转换
  3. Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记
  4. Android M 新的运行时权限开发者需要知道的一切
  5. Getting started with new I/O (NIO)--reference
  6. android开发之重写Application类
  7. 在KALI LINUX中安装JAVA JDK
  8. datebox清除按钮,datebox加上清除按钮,easyui datebox加上清除按钮
  9. thinkphp 常见问题
  10. C# 跨线程调用问题