Java类未定义serialVersionUID是否影响性能

Java类未定义serialVersionUID是否影响性能,java,serialization,Java,Serialization,我混淆了serialVersionUID,有人告诉我,如果我不定义serialVersionUID,它将影响性能,所以我需要总结一下我对这方面的知识 据我所知,在Java编译器中,如果需要在2个类之间进行通信,或者需要在1个任务到1个任务之间使用对象通信。发送方发送对象时,应在发送方和接收方中生成serialVersionUID。将serialVersionUID放入对象,然后接收。验证对象是否正确。接收方将继续此过程。否则,将引发异常 因此,如果我没有放置serialVersionUID,那么

我混淆了serialVersionUID,有人告诉我,如果我不定义serialVersionUID,它将影响性能,所以我需要总结一下我对这方面的知识

据我所知,在Java编译器中,如果需要在2个类之间进行通信,或者需要在1个任务到1个任务之间使用对象通信。发送方发送对象时,应在发送方和接收方中生成serialVersionUID。将serialVersionUID放入对象,然后接收。验证对象是否正确。接收方将继续此过程。否则,将引发异常

因此,如果我没有放置serialVersionUID,那么java编译器将在运行时根据我的理解定义它,因此我认为它不会影响java执行时的性能

我希望我的理解应该是正确的,如果没有请帮助这个网站的另一个建议


谢谢

有关此类详细信息的答案始终可以在规范中找到

如果可序列化类没有显式声明serialVersionUID,则序列化运行时将根据该类的各个方面计算该类的默认serialVersionUID值,如Java(TM)对象序列化规范中所述

有关更多信息,请访问java.io.Serializable

答案是它会,但真正的问题是多少

这个问题的答案可以在本文中找到


得出的结论是,这种影响并不那么相关,但代码管理的成本可能更高。这类问题的最终答案通常取决于项目规模和应用程序将工作的环境。

首先,应生成serialVersionID,并将其添加到实现可序列化接口的类中,它在对象反序列化过程中起到帮助作用。因此,您不必担心可能出现的性能问题,但绝对应该考虑将SerialAlvEovid提供给可序列化类。 在中,您可以了解serialVersionID的用途

因此,如果我没有放置serialVersionUID,那么java编译器将在运行时根据我的理解定义它,因此我认为它不会影响java执行时的性能

那句话没有道理。编译器在运行时无法执行任何操作。如果省略它,JVM将在任何特定的
ObjectInputStream
ObjectOutputStream
首次使用该类时计算一次

开销并不显著