Java中实现Serializable接口为什么要声明serialVersionUID

         一句话解释就是:在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类,再简化就是为了反序列化后验证兼容性。

         如果不声明会对类进行计算产生默认值,但是这种默认值充满不确定性,不方便。

        如果可序列化类未声明 serialVersionUID,则序列化运行时将基于该类的各个方面计算该类的默认 serialVersionUID 值。强烈建议所有可序列化类都显式声明 serialVersionUID 值。默认的 serialVersionUID 对类的详细信息具有较高的敏感性,根据编译器实现的不同可能千差万别,这样在反序列化过程中可能会导致意外的 InvalidClassException产生。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值