Java 生成长类型的UUID

Java 生成长类型的UUID,java,uuid,uniqueidentifier,Java,Uuid,Uniqueidentifier,请给我一个示例代码,在java中生成UUID的long类型,而不使用时间戳 谢谢你看了吗?如果你只想要一个简单的唯一long,你可以使用AtomicLong.incrementAndGet()。这不使用时间戳,但每次启动时都会重置为0,并且在JVM中不是唯一的 不使用时间戳的要求是什么?UUID使用时间戳。(其他方面)一个真正的UUID是128位。长字符是64位 这不仅仅是迂腐。UUID代表通用唯一标识符 产品的“普遍独特性”基于: 对MAC地址和时间戳进行编码 对DNS名称和时间戳的哈希进行

请给我一个示例代码,在java中生成
UUID
long
类型,而不使用时间戳


谢谢

你看了吗?

如果你只想要一个简单的唯一long,你可以使用AtomicLong.incrementAndGet()。这不使用时间戳,但每次启动时都会重置为0,并且在JVM中不是唯一的


不使用时间戳的要求是什么?UUID使用时间戳。(其他方面)

一个真正的UUID是128位。长字符是64位

这不仅仅是迂腐。UUID代表通用唯一标识符

产品的“普遍独特性”基于:

  • 对MAC地址和时间戳进行编码
  • 对DNS名称和时间戳的哈希进行编码,或
  • 使用122位随机数。。。它足够大,碰撞的概率非常小
对于64位,根本没有足够的位来实现“通用唯一性”。例如,生日悖论意味着,如果我们有许多计算机生成随机的64位数字,潜在的可检测碰撞的概率将大到足以引起关注


现在,如果您只需要一个UID(而不是UUID),那么任何64位序列生成器都可以完成这项工作,只要您采取措施防止序列重复。(如果序列重复,则ID在时间上不是唯一的;即,随着时间的推移,给定ID可能表示不同的实体。)

UUID表示128位的值。这不适用于
长的
。某些UUID类型的可能重复使用时间戳,有些使用其他方法来获得唯一性。@StephenC很有道理。我不知道有4种有文档记录的方法来生成UUID。