当前位置: 首页 > news >正文

静态long类型常量serialVersionUID的作用

  1. 需要序列化的类需要实现Serializable接口,该接口没有任何方法,只是标示该类对象可被序列化。  
  2. 序列化过程:使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态)  
  3. 反序列化过程:使用一个输入流(如:FileInputStream)来构造一个ObjectInputStream(对象流)对象,接着,使用ObjectInputStream对象的readObject(Object obj)方法就可以将参数为obj的对象读出(即获取其状态)
  1. 如果没有设置这个值,你在序列化一个对象之后,改动了该类的字段或者方法名之类的,那如果你再反序列化想取出之前的那个对象时就可能会抛出异常,因为你改动了类中间的信息,serialVersionUID是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,当修改后的类去反序列化的时候发现该类的serialVersionUID值和之前保存在问价中的serialVersionUID值不一致,所以就会抛出异常。  
  2. 而显示的设置serialVersionUID值就可以保证版本的兼容性,如果你在类中写上了这个值,就算类变动了,它反序列化的时候也能和文件中的原值匹配上。而新增的值则会设置成null,删除的值则不会显示。 

相关文章:

  • 用百度输入法的用户体验
  • 代码写累了就画点注释陶冶情操
  • 深入解析Java中的装箱和拆箱
  • SQL SERVER 表最小行的一个纠结问题
  • 利用Android Lost通过互联网或短信远程控制安卓设备
  • http://blog.csdn.net/huang_xw/article/details/7090173
  • Outlook 2013 在邮件里面点击超链接时弹出“组织策略阻止我们为您完成此操作”...
  • Wordpress简单配置
  • [android] 看博客学习hashCode()和equals()
  • Linux MySQL源码安装缺少ncurses-devel包
  • 图解 MongoDB 地理位置索引的实现原理(转)
  • 【转】越狱的 iPhone、iPad 通过网站实现一键安装 ipa 格式的 APP 应用
  • 软件测试流程进阶----两年软件测试总结
  • 使用sublime同步编辑线上脚本
  • Windows 7 64bit和Visual Studio 2010下安装及使用GnuWin32
  • 自己简单写的 事件订阅机制
  • emacs初体验
  • vue中实现单选
  • Web标准制定过程
  • 包装类对象
  • 对超线程几个不同角度的解释
  • 你不可错过的前端面试题(一)
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 深入浏览器事件循环的本质
  • 使用Gradle第一次构建Java程序
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​520就是要宠粉,你的心头书我买单
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # Maven错误Error executing Maven
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (07)Hive——窗口函数详解
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2)nginx 安装、启停
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (9)目标检测_SSD的原理
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分布式缓存)Redis分片集群
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (转)h264中avc和flv数据的解析
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET企业级应用架构设计系列之开场白
  • /etc/fstab 只读无法修改的解决办法
  • @Validated和@Valid校验参数区别
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [ACTF2020 新生赛]Include
  • [AIGC] Kong:一个强大的 API 网关和服务平台