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

1. JDK1.5
如果使用的JDK1.5的话,那么生成UUID变成了一件简单的事,以为JDK实现了UUID: java.util.UUID,直接调用即可.


Java代码



1. Java代码   
2. import java.util.UUID;     
3.     
4. public class Test {     
5.     public static void main(String[] args) {     
6.         UUID uuid = UUID.randomUUID();     
7.         System.out.println(uuid.toString());     
8.     }     
9. }


 

2. 第三方开源类库(推荐使用):
最著名的是 JUG .特点上是: 纯Java实现,开源,LGPL协议。采用了Native的方式产生真正的Uuid.而且提供了不同平台的实现,包括:
Linux / x86
Windows (98, ME, NT, 2K, XP?) / x86
Solaris / Sparc
Mac OS X
FreeBSD / x86

Java代码


Java代码



1. import org.doomdark.uuid.UUIDGenerator;     
2.     
3. public class Test {     
4.     public static void main(String[] args) {     
5.         String primaryKey = UUIDGenerator.getInstance()     
6.                 .generateRandomBasedUUID().toString();     
7. "-", "");     
8.     
9.         System.out.println(primaryKey);     
10.     }     
11.     
12. }

package com.haso.util; 


 import java.util.UUID; 


 public class UUIDGenerator { 


     /** 

      * @param args 

      */ 

     public UUIDGenerator() { 

     } 


     /** 

      * 获得一个UUID,使用jdk 1.5 自带的 

      * 

      * @return String UUID 

      */ 

     public static String getUUID() { 

         String s = UUID.randomUUID().toString(); 

         // System.out.println(s); 

         // 去掉"-"符号 

         // return 

         // s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 

         return s.replaceAll("-", ""); 


     } 


     /** 

      * 获得指定数目的UUID 

      * 

      * @param number 

      *            int 需要获得的UUID数量 

      * @return String[] UUID数组 

      */ 

     public static String[] getUUID(int number) { 

         if (number < 1) { 

             return null; 

         } 

         String[] ss = new String[number]; 

         for (int i = 0; i < number; i++) { 

             ss[i] = getUUID(); 

         } 

         return ss; 

     } 


     /** 

      * 如果使用JDK1.5以前的版本,可以考虑使用Java Uuid Generator (JUG),需要下载包。 

      */ 

 //    public static String getJUGUUID() { 

 //        String primaryKey = org.doomdark.uuid.UUIDGenerator.getInstance() 

 //                .generateRandomBasedUUID().toString(); 

 //        primaryKey = primaryKey.replaceAll("-", ""); 

 //        return primaryKey; 

 //    } 


     public static void main(String[] args) { 

         String[] ss = getUUID(10); 

         for (int i = 0; i < ss.length; i++) { 

             System.out.println(ss[i]); 

         } 

         String s = getUUID(); 

         System.out.println("single" + s); 

     } 


 }