标签:算法 style 一个 基于 unique 随机 get 概率 lazy
import java.util.UUID;
在java中的UUID包下的
UUID的全称为:Universally Unique IDentifier,也被称为GUID(Globally Unique IDentifier)。是一种由算法生成的唯一标识,它实质上是一个128位长的二进制整数。通常表示成32个16进制数组成的字符串,如:21EC2020-3AEA-1069-A2DD-08002B30309D。
Java的UUID是V3 V4
基于名称的UUID通过计算名称和名称空间的MD5散列值得到,这个版本的UUID保证了:相同名称空间中不同名称生成的UUID的唯一性;不同名称空间中的UUID的唯一性;相同名称空间中相同名称的UUID重复生成是相同的。
根据随机数,或者伪随机数生成UUID。这种UUID产生重复的概率是可以计算出来的,但随机的东西就像是买彩票:你指望它发财是不可能的,但狗屎运通常会在不经意中到来。可能在测试的时候多线程并发也不见得出现重复,但是却不能保证系统正式上线之后不会出现不重复的UUID,特别是在分布式系统中。
public static String getID() { return UUID.randomUUID().toString().replaceAll("-",""); }
这里取得一个随机数
因为UUID的格式是 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
所以我们把-去掉 变成空 这样出来的ID就不会有符号了
我们用junit来测试一下
标签:算法 style 一个 基于 unique 随机 get 概率 lazy
原文地址:https://www.cnblogs.com/cckong/p/14342461.html