我是靠谱客的博主 烂漫小蝴蝶,最近开发中收集的这篇文章主要介绍为何加入:private static final long serialVersionUID,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  原文地址:http://lhp--2006.iteye.com/blog/623373

  1,serialVersionUID   用来表明类的不同版本间的兼容性。如果你修改了此类,   要修改此值。否则以前用老版本的类序列化的类恢复时会出错。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private   static   final   long   serialVersionUID这个属性,具体数值自己定义。 

  2,控制串行化对象文件版本的,实现了serializable接口的类都应该写这个东西. 
    在警告上点左键就可以自动添加。当然也可以去掉警告。设置:Window--> Preferences--> Java,将serializable   class   without   serialVersionUID的设置由warning改为Ignore。然后Eclipse会重新编译程序,那些警告信息也就消失了。 

  序列化的几个高级应用 

  1 虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致(就是 private static final long serialVersionUID = 1L) 

  2 序列化保存的是对象的状态,静态变量属于类的状态,序列化并不保存静态变量 

  3,Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是 null 

  4,Java 序列化机制为了节省磁盘空间,具有特定的存储规则,当写入文件的为同一对象时,并不会再将对象的内容进行存储,而只是再次存储一份引用 

最后

以上就是烂漫小蝴蝶为你收集整理的为何加入:private static final long serialVersionUID的全部内容,希望文章能够帮你解决为何加入:private static final long serialVersionUID所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部