【注意】Java序列化serialVersionUID问题

本文深入探讨了Java序列化中serialVersionUID的作用及其实现原理。详细解释了当未显式定义serialVersionUID时,Java如何根据类的编译信息自动生成该标识符,并讨论了类结构变化对序列化的影响。

Java序列化serialVersionUID问题

当没有显式地定义serialVersionUID变量时,Java序列化机制会根据编译的class(它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的)自动生成一个serialVersionUID作序列化版本比较用。
这种情况下,如果class文件(类名,方法名等)没有发生变化(增加空格,换行,增加注释,等等),就算再编译多次,serialVersionUID也不会变化的。但是一旦变化,如给类增加了方法、属性等,那么在反序列化时,就会出现序列化版本不一致的异常(InvalidCastException)!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值