请给我示例代码来生成long类型的UUID在java中,而不使用时间戳。
谢谢
发布于 2010-12-25 18:53:27
真实的UUID是128位。长整型是64位。
这不仅仅是卖弄学问。UUID是通用唯一IDentifier的缩写。
established UUID schemes的“通用唯一性”基于:
对于64位,没有足够的位来实现“通用唯一性”。例如,生日悖论意味着,如果我们有许多计算机生成随机的64位数字,潜在可检测到的碰撞的概率将足够大,足以引起人们的关注。
现在,如果您只需要一个UID (而不是UUID),那么只要您采取措施防止序列重复,任何64位序列生成器都可以完成这项工作。(如果序列重复,则ID在时间上不是唯一的;即,随着时间的推移,给定的ID可能表示不同的实体。)
发布于 2010-12-25 16:20:07
你有没有看过java.util.UUID
发布于 2010-12-25 17:07:57
如果您只想要一个简单唯一的长整型,那么可以使用AtomicLong.incrementAndGet()。这不使用时间戳,但每次启动时都会重置为0,并且在JVM中不是唯一的。
不使用时间戳的要求是什么?UUID使用时间戳。(除其他事项外)
https://stackoverflow.com/questions/4529727
复制相似问题