1. private static final long serialVersionUID=1L
2. private static final long serialVersionUID = -3918615899217238029L
两种都可以,采用 generate one ,则表示开发者不向下兼容,每次修改类,都删除该字段,再自动生成一个。
采用 1L,就是开发者自己控制是否向下兼容,如果修改小(新增时)可以向下兼容,删除属性时则不能,需要手动做版本号的更新。
不显式生成 serialVersionUID,则JVM会自动生成一个,这个值和编译器实现相关并不稳定,会造成反序列化时报InvaildClassCastException
本文探讨了serialVersionUID在Java序列化中的作用及其使用方式。解释了如何选择1L或自动生成值来确保类的版本兼容性,并说明了不指定该值可能带来的问题。
899

被折叠的 条评论
为什么被折叠?



