UUID含義是通用惟一識別碼 (Universally Unique Identifier),這 是一個軟件建構的標準,也是被開源軟件基金會 (Open Software Foundation, OSF) 的組織應用在分佈式計算環境 (Distributed Computing Environment, DCE) 領域的一部分。java
UUID是指在一臺機器上生成的數字,它保證對在同一時空中的全部機器都是惟一的。一般平臺會提供生成的API。按照開放軟件基金會(OSF)制定的標準計算,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字數據庫
UUID由如下幾部分的組合:數組
(1)當前日期和時間,UUID的第一個部分與時間有關,若是你在生成一個UUID以後,過幾秒又生成一個UUID,則第一個部分不一樣,其他相同。dom
(2)時鐘序列。分佈式
(3)全局惟一的IEEE機器識別號,若是有網卡,從網卡MAC地址得到,沒有網卡以其餘方式得到。函數
UUID的惟一缺陷在於生成的結果串會比較長。關於UUID這個標準使用最廣泛的是微軟的GUID(Globals Unique Identifiers)。在ColdFusion中能夠用CreateUUID()函數很簡單地生成UUID,其格式爲:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每一個 x 是 0-9 或 a-f 範圍內的一個十六進制的數字。而標準的UUID格式爲:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),能夠從cflib 下載CreateGUID() UDF進行轉換。ui
UUID是1.5中新增的一個類,在java.util下,用它能夠產生一個號稱全球惟一的IDspa
package com.mytest; import java.util.UUID; public class UTest { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid); } }
JDK1.5
若是使用的JDK1.5的話,那麼生成UUID變成了一件簡單的事,覺得JDK實現了UUID:
java.util.UUID,直接調用便可.
UUID uuid = UUID.randomUUID();
String s = UUID.randomUUID().toString();//用來生成數據庫的主鍵id很是不錯。。
code
//下面就是實現爲數據庫獲取一個惟一的主鍵id的代碼 public class UUIDGenerator { public UUIDGenerator() { } /** * 得到一個UUID * @return String UUID */ public static String getUUID(){ String s = UUID.randomUUID().toString(); //去掉「-」符號 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; } public static void main(String[] args){ String[] ss = getUUID(10); for(int i=0;i<ss.length;i++){ System.out.println(ss[i]); } } }