当前位置:  编程技术>java/j2ee

全面解释Java中的serialVersionUID

    来源: 互联网  发布时间:2014-10-27

    本文导语:  serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。 有两种生成方式:一个是默认的1L,比如:private static final long serialVersionUID = 1L;一个是根据类名、接口名、成员方法及属性...

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,可避开不兼容性问题。


    
 
 

您可能感兴趣的文章:

  • 请问java的xml解释器有哪些?怎么能在applet里用这些解释器?
  • 请问:在哪里能找到JAVA编译器和解释器?我是一个初学者。我想学JAVA。
  • Java源代码解释器 Beanshell
  • 在哪里能找到JAVA编译器和解释器?我是一个初学者。我想学JAVA。
  • 使用editplus编写java如何编译成字节码文件,如何解释
  • 由谁在Linux下用java顺利解释过.class文件?
  • ....新手傻问题:怎么样添加java解释器至PATH环境变量??
  • 那里可以找到java的svg解释器?
  • 我的JAVA解释器是怎么回事啦?
  • 请详细解释一下java tm 和kjava是什么?谢谢
  • 怎样用JAVA捕获到RESIN在解释JSP程序时所报的错?急……
  • 最后36分,java 怎么使用ie自带的xml解释器?
  • 谁能解释一下什么是B/S结构,以及java的一些实现
  • 请java高手,为我解释一下这个命令是干什么的?《java核心技术2》
  • 我刚看java,知道它的目标代码是解释执行的,目标执行速度快吗?
  • java中一些属于的解释,J2EE,J2SE,SERVLETS,BEANS,EJB?
  • Java版的Ruby解释器 JRuby
  • 谁详细解释一下Java中的Native访问控制符啊?SCJP275要不要考这个的?
  • Java parseInt解释加方法示例
  • 能不能告诉我使用editplus编写java如何编译成字节码文件,如何解释?,虽然问题简单一点,可对我很需要
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • classpath里的.;到底有什么用?能解释解释吗?
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • 大虾们给我解释解释这个输出问题。这里小弟先谢了。
  • 实在是不能理解,谁能帮我解释解释!
  • 能不能帮我解释解释什么是EJB?
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • alex 解释器 alexinterpreter
  • 地震解释软件系统 OpendTect
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • 这个"."怎么解释?
  • 高手帮忙解释
  • 请详细解释javamail里的“收件人类型”的CC,TO,BCC的意义???
  • linux中/dev下都是些什么文件啊?大侠们谁可以帮我解释一下?
  • 多线程的例子。但是不知道为什么看不懂。唉,笨:(各们帮帮忙了给我解释解释
  • 数字电视CA卡解释模块 OSCam
  • markdonw解释器 sundown
  • Brainfuck编译器和JIT解释器 bfc
  • Scheme Lisp 解释器 Subs
  • MQ错误码解释工具 MQRC2
  • AIML解释器 program-o


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3