关于UUID

1 UUID的版本

版本1

时间+网卡的mac地址

版本2

这个版本可以忽略

版本3

对具有唯一性的名字空间计算md5,比如url,本身就是唯一的。

版本4

随机生成

2 UUID如何保证全球唯一

version 1

网卡的mac地址是全球唯一的,除非被克隆,另外时间在流逝,因此自己生成的UUID也是唯一的。

version 3

名字空间是唯一的,再计算md5

verison 4

在大的空间进行随机生成,冲突的概率非常小。

3 UUID发生碰撞的概率

很小

3.1 自己和自己碰撞

3.2 自己和他人的碰撞

4 java的UUID是版本

4.1 生成版本4的UUID

randomUUID()

4.2 生成版本3的UUID

nameUUIDFromBytes()

4.3 生成版本1的UUID

没有统一的接口,有三个接口,自己组装

第一,60 个bit长的时间戳,timestamp

第二,14 个 bit 长的时钟序列值,

clockSequence()

第三,48 个 bit 长的节点值,

node()

参考资料

1 java UUID源码剖析

https://samray.me/Java-UUID-%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90--Table-of-Contents

原文地址:https://www.cnblogs.com/hustdc/p/11479645.html