博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列化注意事项
阅读量:6642 次
发布时间:2019-06-25

本文共 673 字,大约阅读时间需要 2 分钟。

序列化注意事项

当对象被序列化保存到文件中之后,我们可以在其它地方去读取该文件以还原对象,但必须确保该读取程序的CLASSPATH中包含有相应的类例如:Person.class(哪怕在读取Person对象时并没有显示地使用Person类),否则会抛出ClassNotFoundException。

为什么需要ServialVersionUID

应该说为什么要手动声明一个ServialVersionUID。因为只要你做了序列化了,JAVA就会自动给你加上一个SerialVersionUID。
Java强烈建议我们显式的声明一个SerialVersionUID,因为SerialVersionUID默认值的计算是根据类的各个方面得来的(类名、接口名、成员方法及属性等)。

Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)

参考:

http://blog.jobbole.com/31724/

http://www.cnblogs.com/guanghuiqq/archive/2012/07/18/2597036.html

转载于:https://www.cnblogs.com/mingluosunshan/p/5387516.html

你可能感兴趣的文章
oracle表分区的,分区操作,分区查询,子分区查询
查看>>
丙戍年@_@ 新年快乐!
查看>>
BZOJ3600:没有人的算术
查看>>
ios开发之 -- NSString指定字体高亮显示
查看>>
如何修改SharePoint服务器数据库连接字符串
查看>>
逻辑与和逻辑或:&& 、||
查看>>
两台centos之间使用scp命令传输文件
查看>>
前端工程师技能之photoshop巧用系列第三篇——切图篇
查看>>
消息队列
查看>>
ElasticSearch 全文检索— ElasticSearch 安装部署
查看>>
lambda表达式&map&filter&yield
查看>>
javaSE之存储区的分类
查看>>
windows 安装ruby on rails
查看>>
[Groovy]获取当前活动的Environment,获取response中节点的name和节点的value
查看>>
简单几何(圆与多边形公共面积) UVALive 7072 Signal Interference (14广州D)
查看>>
zoj 1004 Anagrams by Stack
查看>>
BZOJ3631:[JLOI2014]松鼠的新家——题解
查看>>
mysql create database 指定utf-8编码
查看>>
「小程序JAVA实战」微信小程序工程结构了解(五)
查看>>
linux中用date命令获取昨天、明天或多天前后的日期
查看>>