当前位置: 首页 > 面试题库 >

Java UUID.randomUUID冲突的机会有多大?

严信瑞
2023-03-14
问题内容

我需要在Java中创建一些唯一文件,并且我计划使用UUID.randomUUID生成其名称。有没有机会撞到这个?我应该做类似波纹管的事情吗?我不应该为此担心吗?

Integer attemptsToGenerateUUID = 1;

while (true) {
    UUID fileUUID = UUID.randomUUID();

    if (fileDoesNotExistwith this UUID name) {
        save file;
        break;
    }

    attemptsToGenerateUUID += 1;

    if (attemptsToGenerateUUID > 64) {
        return false;
    }
}

问题答案:

根据维基百科,关于随机UUID中重复的概率:

仅在接下来的100年中每秒生成10亿个UUID之后,仅创建一个副本的可能性就约为50%。或者,换句话说,如果地球上的每个人都拥有6亿个UUID,则重复一次的概率约为50%。

我想同样的道理也适用于Java的UUID实现。因此,不,您不必为此担心。



 类似资料:
  • 小雪再 pull 的时候遇到了冲突。 → git pull --rebase remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0 Unpacking objects

  • 问题内容: 我需要一个类的双重继承。我尝试了几种语法,但我不了解元类的概念。 问题答案: 您遇到的问题是,您尝试从其继承的类具有不同的元类: 因此,python无法确定哪个应该是新创建的类的元类。在这种情况下,它必须是一个继承自(或对于较旧的PyQt5版本)和的类。 因此,可以通过显式引入诸如metaclass之类的类来解决元类冲突: 如果需要更详细的描述,那么本文是一个好的开始。 但是,我并不真

  • 我在我的应用程序中构建了CSRF保护,只需在每个页面加载上生成一个随机令牌,将其放入会话,然后将令牌绑定到

  • 在合并中我们已经学会了如何处理简单的Merge。 Mercurial当然也处理更加复杂的 Merge。很平常的情况是两个人同时更改同一个文件的同一段代码,然后必须给出处理的方法。这称之为冲突;处理这类冲突称之为合并。 首先让我们人为的创建一个冲突的实例。 正如我们前面所做的, 通过做一个my-hello的Clone"开始: $ cd .. $ hg clone my-hello my-hello

  • Postgres 10和11的插入说明: 关于冲突[冲突目标]冲突行动 我有一张桌子: 而我想做的 但是我得到一个错误: ON CONFLICT DO UPDATE需要推理规范或约束名称提示:例如,ON CONFLICT(column_name) 为什么我必须提供一个确定的目标?如何提供主键或其他列集?

  • 问题内容: 看起来我偶然发现了一个元类地狱,即使我不想做任何事情。 我正在使用PySide在Qt4中编写一个应用程序。我想将事件驱动的部分与UI定义分开,UI定义是从Qt Designer文件生成的。因此,我创建了一个“ controller”类,但是为了简化我的生活,我还是对它们进行了多重继承。一个例子: 这按预期工作。它也有继承自(,,)。但是,当我子类化并尝试从所述子类继承(代替)时,会收到