Java的。 UUID,它是如何工作的

时间:2013-12-03 21:05:00

标签: uuid

  • java.util.UUID在每个文件中都是唯一的吗?

    例如:

    • 我们有文件 IDFile1.java ,使用UUID.randomUUID().toString()生成一个随机ID。
    • 我们有一个名为 IDFile2.java 的file2,它会生成另一个ID。

    这两个文件ID会相互冲突吗?

  • 有没有办法“回头”使用从java.util.UUID生成的ID,这意味着,这个ID可以再次使用?
  • 2 个答案:

    答案 0 :(得分:1)

    randomUUID这样的函数的目的是将可能具有一定量随机性的各种信息组合在一起,以便在不同时间或不同地方生成的两个UUID具有极小的匹配可能性除非所有潜在随机性的来源恰好产生相同的结果。没有努力跟踪哪些UUID已经发布或未发布;相反,目标是具有足够的随机性,以使无意匹配的概率相对于例如通过流星撞击将计算机粉碎成一百万件的可能性。

    请注意,系统可能会使用“已发布的U​​UID数”作为其UUID计算的一部分,但这只是其中的许多因素之一。这种计数器的目的不是允许人们“返回”到先前的UUID,而是确保如果例如几乎同时请求两个UUID,它们之间没有任何随机源,这两个请求将产生不同的值。

    答案 1 :(得分:0)

    UUID与生成它的文件无关。哪个文件生成它们并不重要,它们可能不会相同。

    对于问题2,生成UUID的方式实际上并不允许以任何有意义的方式重新生成它们。它们通常基于计算机中的某些信息,当前时间和其他内容生成。 Java算法使用加密安全随机数生成器,称为类型4 UUID。