我对serialVersionUID感到困惑,有人告诉我是否未定义serialVersionUID,这会影响性能,因此我需要总结一下有关此方面的知识
据我了解,在Java编译器中,如果您需要在2个类之间进行通信,或者需要在1个任务与1个任务之间使用对象通信。当发送方发送对象时,应在发送方和接收方中生成serialVersionUID,然后将serialVersionUID放入对象中,然后接收验证对象是否正确,否则,接收方将继续处理。
因此,如果我不输入serialVersionUID,那么据我所知,java编译器将在运行时定义它,因此我认为这不会影响Java执行时的性能。
希望我的理解是正确的。如果不正确,请帮助本网站的另一个人提出建议。
谢谢
最佳答案
这些细节的答案总是可以在规格书中找到。
如果可序列化的类未明确声明serialVersionUID,则序列化运行时将根据该类的各个方面为该类计算默认的serialVersionUID值,如Java(TM)对象序列化规范中所述。
有关更多信息,请访问java.io.Serializable。
答案是,但真正的问题是多少?
可以在本文Into the mist of serialization myths中找到该问题的答案。
结论是影响不是那么重要,但是代码管理的成本可能更大。通常,此类问题的最终答案取决于项目规模和应用程序将在其中运行的环境。