网站制作公司咨询工作内容,wordpress get_posts category,跑腿网站建设,新网站seo优化文章底部有个人公众号#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享#xff1f; 踩过的坑没必要让别人在再踩#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官#xff1a; Serializable接口为什么… 文章底部有个人公众号热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享 踩过的坑没必要让别人在再踩自己复盘也能加深记忆。利己利人、所谓双赢。 面试官 Serializable接口为什么需要定义serialVersionUID变量
参考答案
serialVersionUID代表序列化的版本通过定义类的序列化版本在反序列化时只要对象中所存的版本和当前类的版本一致就允许做恢复数据的操作否则将会抛出序列化版本不一致的错误。
如果不定义序列化版本在反序列化时可能出现冲突的情况例如 1、创建该类的实例并将这个实例序列化保存在磁盘上 2、升级这个类例如增加、删除、修改这个类的成员变量 3、反序列化该类的实例即从磁盘上恢复修改之前保存的数据。
在第3步恢复数据的时候当前的类已经和序列化的数据的格式产生了冲突可能会发生各种意想不到的问题。增加了序列化版本之后在这种情况下则可以抛出异常以提示这种矛盾的存在提高数据的安全性。