前言:
现时小伙伴们对“javauid”大体比较关心,大家都需要学习一些“javauid”的相关资讯。那么小编在网络上收集了一些对于“javauid””的相关知识,希望姐妹们能喜欢,姐妹们快快来了解一下吧!UID是什么?
UID(Stream Unique Identifier)是流唯一标识符,在Java类中定义的,可以显示声明,也可以隐式声明。显示声明为
private static final long serialVersionUID = xxxL
隐式声明是编译器在编译时生成的,生成方式极度复杂,是通过包名,类名,继承关系,非私有的方法和属性等诸多因子计算得出。
UID的作用是什么?
JVM在反序列化时,会比较数据流中的UID和当前类的UID是否相同,不相同则说明类变化了,无法反序列化,抛出InvalidClassException,可以保证网络传输中的一致性。
为什么要显示声明UID?
假如数据序列化时修改了类,添加了某一个无关紧要的方法,导致隐式的UID变化了。数据反序列化时并没有同步修改,会导致反序列化异常。如果采用显示声明,则依然可以反序列化。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #javauid