Java使用UUID方式随机生成不重复标识

       UUID(Universally Unique Identifier)全局惟一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的全部机器都是惟一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由如下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,若是你在生成一个UUID以后,过几秒又生成一个UUID,则第一个部分不一样,其他相同),时钟序列,全局惟一的IEEE机器识别号(若是有网卡,从网卡得到,没有网卡以其余方式得到),UUID的惟一缺陷在于生成的结果串会比较长java

     UUID是一个128位长的数字,通常用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID。从理论上讲,若是一台机器每秒产生10000000个UUID,则能够保证(几率意义上)3240年不重复。如此一来,每一个人均可以创建不与其它人冲突的 UUID。在这样的状况下,就不需考虑数据库创建时的名称重复问题。算法


UUID是1.5中新增的一个类,在java.util下,用它能够产生一个号称全球惟一的ID。sql

public class test {
  public static void main(String[] args) {
     String uuid = UUID.randomUUID().toString();
     System.out.println(uuid);
}

如下是我运行三次的结果数据库

d0cd48ef-313a-405c-ac76-12cce5657dca
d7e1e24b-9574-4ea0-a08f-4cfa6965035f
c6b75eef-f6ca-4963-8c4f-26b72cb15eee

博客地址:http://my.oschina.net/wangniandom

相关文章
相关标签/搜索