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