博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java:关于SerialVersionUid
阅读量:7305 次
发布时间:2019-06-30

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

hot3.png

有时会在java代码中看到类有这样一个属性:
private static final long serialVersionUID = 1L
对此总结了一番
本文摘录部分内容:
SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassException异常。如果修改较小,比如仅仅是增加了一个属性,我们希望向下兼容,老版本的数据都能保留,那就不用修改;如果我们删除了一个属性,或者更改了类的继承关系,必然不兼容旧数据,这时就应该手动更新版本号,即SerialVersionUid。
如果不显式设置SerialVersionUid,有什么后果?
jdk文档中有解释,建议我们显式声明,因为如果不声明,JVM会为我们自动产生一个值,但这个值和编译器的实现相关,并不稳定,这样就可能在不同JVM环境下出现反序列化时报InvalidClassException异常。
---end

转载于:https://my.oschina.net/letiantian/blog/389187

你可能感兴趣的文章
数据库分离
查看>>
InternalResourceViewResolver SpringMVC视图解析器
查看>>
win7 系统TCP/Ip问题
查看>>
如何手动删除并重新安装 .NET Framework 2.0
查看>>
Coding and Paper Letter(五十八)
查看>>
Java学习之Iterator(迭代器)的一般用法 (转)
查看>>
LeetCode - 118. 杨辉三角
查看>>
Android开发实践:使用Service还是Thread
查看>>
关于有风无度
查看>>
码分多址技术
查看>>
iOS开发优秀博客和软件推荐
查看>>
上海滩
查看>>
转移战场至:“51CTO博客”,希望可以再次回到百度空间……
查看>>
Maven 点滴
查看>>
js播放音乐
查看>>
Aruba Controller 基于802.1x实现证书认证
查看>>
我的友情链接
查看>>
在Struts2的Filter注入Spring的Bean
查看>>
delphi 统计运行时间
查看>>
Html5添加切换缩略图模式和列表模式插件教程
查看>>