Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不带L的serialVersionUID,XXXXXXXXXXXXXXXXXX L对1L,正对负_Java_Serialization_Jdk1.7 - Fatal编程技术网

Java 不带L的serialVersionUID,XXXXXXXXXXXXXXXXXX L对1L,正对负

Java 不带L的serialVersionUID,XXXXXXXXXXXXXXXXXX L对1L,正对负,java,serialization,jdk1.7,Java,Serialization,Jdk1.7,我阅读和阅读。从这两篇SO文章中,我大致了解了它是什么。它是可序列化类的ID,用于在反序列化期间检查发送方和接收方是否兼容。如果不是,则抛出InvalidClassException 然而,我对一些事情感到好奇: serialVersionUID似乎分为2个“类型”。19个数字后跟L XXXXXXXXXXXX L或269L或1L。这些数字似乎不是随意选择的。如果我们只需要一个身份证,任何号码都不行吗?这种设计背后的逻辑是什么 对于长度为20个字符的serialVersionUID可以是正数或负

我阅读和阅读。从这两篇SO文章中,我大致了解了它是什么。它是可序列化类的ID,用于在反序列化期间检查发送方和接收方是否兼容。如果不是,则抛出
InvalidClassException

然而,我对一些事情感到好奇:

  • serialVersionUID
    似乎分为2个“类型”。19个数字后跟L XXXXXXXXXXXX L或269L或1L。这些数字似乎不是随意选择的。如果我们只需要一个身份证,任何号码都不行吗?这种设计背后的逻辑是什么
  • 对于长度为20个字符的
    serialVersionUID
    可以是正数或负数。有什么区别。同样,如果
    serialVersionUID
    用于识别,为什么我们需要一个负数?我们还没有用完所有的正数
  • MirroredTypedException.java
    中,
    serialVersionUID
    是269,没有
    L
    。这是我找到的唯一没有
    L
    serialVersionUID
    。为什么呢?
    L
    的含义是什么
快照(此快照不包括所有快照)

serialVersionUID可分为2个“类型”

不是真的。它们都是长的

对于20个字符长的serialVersionUID,它可以是正数或负数

这些都是随机选择的。如果您在
Long.MIN\u值
Long.MAX\u值
之间随机选择一个数字,则大多数情况下它将有19位数字,一半时间为负数

有时,它们可能是从某个内容的散列(例如源代码、xml定义等)生成的。如果哈希函数是好的,那么数字的分布将与随机选择相同

为什么呢?L是什么意思

269
不需要它,因为它适合
int
的范围,并且会自动向上转换为
长的

serialVersionUID可分为2个“类型”

不是真的。它们都是长的

对于20个字符长的serialVersionUID,它可以是正数或负数

这些都是随机选择的。如果您在
Long.MIN\u值
Long.MAX\u值
之间随机选择一个数字,则大多数情况下它将有19位数字,一半时间为负数

有时,它们可能是从某个内容的散列(例如源代码、xml定义等)生成的。如果哈希函数是好的,那么数字的分布将与随机选择相同

为什么呢?L是什么意思

269
不需要它,因为它适合
int
的范围,并且会自动向上转换为
长的